@@ -292,6 +292,9 @@ func setupCapabilities(specgen *generate.Generator, caps *types.Capability, defa
292292 // and pods expect that switching to a non-root user results in the capabilities being
293293 // dropped. This should be revisited in the future.
294294 specgen .Config .Process .Capabilities .Ambient = []string {}
295+ // Also remove all inheritable capabilities in accordance with CVE-2022-27652,
296+ // as it's not idiomatic for a manager of processes to set them.
297+ specgen .Config .Process .Capabilities .Inheritable = []string {}
295298
296299 if caps == nil {
297300 return nil
@@ -329,9 +332,6 @@ func setupCapabilities(specgen *generate.Generator, caps *types.Capability, defa
329332 if err := specgen .AddProcessCapabilityEffective (c ); err != nil {
330333 return err
331334 }
332- if err := specgen .AddProcessCapabilityInheritable (c ); err != nil {
333- return err
334- }
335335 if err := specgen .AddProcessCapabilityPermitted (c ); err != nil {
336336 return err
337337 }
@@ -345,9 +345,6 @@ func setupCapabilities(specgen *generate.Generator, caps *types.Capability, defa
345345 if err := specgen .DropProcessCapabilityEffective (c ); err != nil {
346346 return err
347347 }
348- if err := specgen .DropProcessCapabilityInheritable (c ); err != nil {
349- return err
350- }
351348 if err := specgen .DropProcessCapabilityPermitted (c ); err != nil {
352349 return err
353350 }
@@ -369,9 +366,6 @@ func setupCapabilities(specgen *generate.Generator, caps *types.Capability, defa
369366 if err := specgen .AddProcessCapabilityEffective (capPrefixed ); err != nil {
370367 return err
371368 }
372- if err := specgen .AddProcessCapabilityInheritable (capPrefixed ); err != nil {
373- return err
374- }
375369 if err := specgen .AddProcessCapabilityPermitted (capPrefixed ); err != nil {
376370 return err
377371 }
@@ -388,9 +382,6 @@ func setupCapabilities(specgen *generate.Generator, caps *types.Capability, defa
388382 if err := specgen .DropProcessCapabilityEffective (capPrefixed ); err != nil {
389383 return fmt .Errorf ("failed to drop cap %s %v" , capPrefixed , err )
390384 }
391- if err := specgen .DropProcessCapabilityInheritable (capPrefixed ); err != nil {
392- return fmt .Errorf ("failed to drop cap %s %v" , capPrefixed , err )
393- }
394385 if err := specgen .DropProcessCapabilityPermitted (capPrefixed ); err != nil {
395386 return fmt .Errorf ("failed to drop cap %s %v" , capPrefixed , err )
396387 }
0 commit comments