Skip to content

Commit 551516a

Browse files
authored
Merge pull request from GHSA-c9cp-9c75-9v8c
Fix the Inheritable capability defaults.
2 parents 36dcc76 + 6906b57 commit 551516a

File tree

5 files changed

+7
-17
lines changed

5 files changed

+7
-17
lines changed

oci/spec.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,9 @@ func populateDefaultUnixSpec(ctx context.Context, s *Spec, id string) error {
148148
GID: 0,
149149
},
150150
Capabilities: &specs.LinuxCapabilities{
151-
Bounding: defaultUnixCaps(),
152-
Permitted: defaultUnixCaps(),
153-
Inheritable: defaultUnixCaps(),
154-
Effective: defaultUnixCaps(),
151+
Bounding: defaultUnixCaps(),
152+
Permitted: defaultUnixCaps(),
153+
Effective: defaultUnixCaps(),
155154
},
156155
Rlimits: []specs.POSIXRlimit{
157156
{

oci/spec_opts.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,6 @@ func WithCapabilities(caps []string) SpecOpts {
873873
s.Process.Capabilities.Bounding = caps
874874
s.Process.Capabilities.Effective = caps
875875
s.Process.Capabilities.Permitted = caps
876-
s.Process.Capabilities.Inheritable = caps
877876

878877
return nil
879878
}
@@ -908,7 +907,6 @@ func WithAddedCapabilities(caps []string) SpecOpts {
908907
&s.Process.Capabilities.Bounding,
909908
&s.Process.Capabilities.Effective,
910909
&s.Process.Capabilities.Permitted,
911-
&s.Process.Capabilities.Inheritable,
912910
} {
913911
if !capsContain(*cl, c) {
914912
*cl = append(*cl, c)
@@ -928,7 +926,6 @@ func WithDroppedCapabilities(caps []string) SpecOpts {
928926
&s.Process.Capabilities.Bounding,
929927
&s.Process.Capabilities.Effective,
930928
&s.Process.Capabilities.Permitted,
931-
&s.Process.Capabilities.Inheritable,
932929
} {
933930
removeCap(cl, c)
934931
}
@@ -943,7 +940,7 @@ func WithDroppedCapabilities(caps []string) SpecOpts {
943940
func WithAmbientCapabilities(caps []string) SpecOpts {
944941
return func(_ context.Context, _ Client, _ *containers.Container, s *Spec) error {
945942
setCapabilities(s)
946-
943+
s.Process.Capabilities.Inheritable = caps
947944
s.Process.Capabilities.Ambient = caps
948945
return nil
949946
}

oci/spec_opts_linux_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ func TestAddCaps(t *testing.T) {
3939
s.Process.Capabilities.Bounding,
4040
s.Process.Capabilities.Effective,
4141
s.Process.Capabilities.Permitted,
42-
s.Process.Capabilities.Inheritable,
4342
} {
4443
if !capsContain(cl, "CAP_CHOWN") {
4544
t.Errorf("cap list %d does not contain added cap", i)
@@ -63,7 +62,6 @@ func TestDropCaps(t *testing.T) {
6362
s.Process.Capabilities.Bounding,
6463
s.Process.Capabilities.Effective,
6564
s.Process.Capabilities.Permitted,
66-
s.Process.Capabilities.Inheritable,
6765
} {
6866
if capsContain(cl, "CAP_CHOWN") {
6967
t.Errorf("cap list %d contains dropped cap", i)
@@ -82,7 +80,6 @@ func TestDropCaps(t *testing.T) {
8280
s.Process.Capabilities.Bounding,
8381
s.Process.Capabilities.Effective,
8482
s.Process.Capabilities.Permitted,
85-
s.Process.Capabilities.Inheritable,
8683
} {
8784
if capsContain(cl, "CAP_FOWNER") {
8885
t.Errorf("cap list %d contains dropped cap", i)
@@ -103,7 +100,6 @@ func TestDropCaps(t *testing.T) {
103100
s.Process.Capabilities.Bounding,
104101
s.Process.Capabilities.Effective,
105102
s.Process.Capabilities.Permitted,
106-
s.Process.Capabilities.Inheritable,
107103
} {
108104
if len(cl) != 0 {
109105
t.Errorf("cap list %d is not empty", i)

oci/spec_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ func TestGenerateSpec(t *testing.T) {
4545
for _, cl := range [][]string{
4646
s.Process.Capabilities.Bounding,
4747
s.Process.Capabilities.Permitted,
48-
s.Process.Capabilities.Inheritable,
4948
s.Process.Capabilities.Effective,
5049
} {
5150
for i := 0; i < len(defaults); i++ {
@@ -193,8 +192,8 @@ func TestWithCapabilities(t *testing.T) {
193192
if len(s.Process.Capabilities.Permitted) != 1 || s.Process.Capabilities.Permitted[0] != "CAP_SYS_ADMIN" {
194193
t.Error("Unexpected capabilities set")
195194
}
196-
if len(s.Process.Capabilities.Inheritable) != 1 || s.Process.Capabilities.Inheritable[0] != "CAP_SYS_ADMIN" {
197-
t.Error("Unexpected capabilities set")
195+
if len(s.Process.Capabilities.Inheritable) != 0 {
196+
t.Errorf("Unexpected capabilities set: length is non zero (%d)", len(s.Process.Capabilities.Inheritable))
198197
}
199198
}
200199

pkg/cri/server/container_create_linux_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,15 +255,14 @@ func TestContainerCapabilities(t *testing.T) {
255255
for _, include := range test.includes {
256256
assert.Contains(t, spec.Process.Capabilities.Bounding, include)
257257
assert.Contains(t, spec.Process.Capabilities.Effective, include)
258-
assert.Contains(t, spec.Process.Capabilities.Inheritable, include)
259258
assert.Contains(t, spec.Process.Capabilities.Permitted, include)
260259
}
261260
for _, exclude := range test.excludes {
262261
assert.NotContains(t, spec.Process.Capabilities.Bounding, exclude)
263262
assert.NotContains(t, spec.Process.Capabilities.Effective, exclude)
264-
assert.NotContains(t, spec.Process.Capabilities.Inheritable, exclude)
265263
assert.NotContains(t, spec.Process.Capabilities.Permitted, exclude)
266264
}
265+
assert.Empty(t, spec.Process.Capabilities.Inheritable)
267266
assert.Empty(t, spec.Process.Capabilities.Ambient)
268267
}
269268
}

0 commit comments

Comments
 (0)