Skip to content

Commit e7e55c9

Browse files
committed
do not set the inheritable capabilities
The kernel never sets the inheritable capabilities for a process, they are only set by userspace. Emulate the same behavior. Closes: CVE-2022-27651 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
1 parent f85e523 commit e7e55c9

File tree

2 files changed

+1
-7
lines changed

2 files changed

+1
-7
lines changed

chroot/run.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -897,7 +897,7 @@ func setCapabilities(spec *specs.Spec, keepCaps ...string) error {
897897
capMap := map[capability.CapType][]string{
898898
capability.BOUNDING: spec.Process.Capabilities.Bounding,
899899
capability.EFFECTIVE: spec.Process.Capabilities.Effective,
900-
capability.INHERITABLE: spec.Process.Capabilities.Inheritable,
900+
capability.INHERITABLE: []string{},
901901
capability.PERMITTED: spec.Process.Capabilities.Permitted,
902902
capability.AMBIENT: spec.Process.Capabilities.Ambient,
903903
}

run_linux.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,9 +1964,6 @@ func setupCapAdd(g *generate.Generator, caps ...string) error {
19641964
if err := g.AddProcessCapabilityEffective(cap); err != nil {
19651965
return errors.Wrapf(err, "error adding %q to the effective capability set", cap)
19661966
}
1967-
if err := g.AddProcessCapabilityInheritable(cap); err != nil {
1968-
return errors.Wrapf(err, "error adding %q to the inheritable capability set", cap)
1969-
}
19701967
if err := g.AddProcessCapabilityPermitted(cap); err != nil {
19711968
return errors.Wrapf(err, "error adding %q to the permitted capability set", cap)
19721969
}
@@ -1985,9 +1982,6 @@ func setupCapDrop(g *generate.Generator, caps ...string) error {
19851982
if err := g.DropProcessCapabilityEffective(cap); err != nil {
19861983
return errors.Wrapf(err, "error removing %q from the effective capability set", cap)
19871984
}
1988-
if err := g.DropProcessCapabilityInheritable(cap); err != nil {
1989-
return errors.Wrapf(err, "error removing %q from the inheritable capability set", cap)
1990-
}
19911985
if err := g.DropProcessCapabilityPermitted(cap); err != nil {
19921986
return errors.Wrapf(err, "error removing %q from the permitted capability set", cap)
19931987
}

0 commit comments

Comments
 (0)