Skip to main content

More Info:

Do not generally permit containers to be run with the hostIPC flag set to true.

Risk Level

Critical

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS EKS
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Manual Steps

  1. Identify namespaces that currently admit hostIPC pods
    • Run on: any machine with kubectl access
  2. For each affected namespace, create a baseline PodSecurity admission label set (example for prod-apps)
    • Run on: any machine with kubectl access
  3. Add a LimitRange to block hostIPC in the namespace (example for prod-apps)
    • Run on: any machine with kubectl access
    • Create a manifest file limitrange-no-hostipc-prod-apps.yaml with:
    • Apply it:
  4. (If PodSecurity admission is not available) Define an admission control policy resource for the namespace (e.g., Kyverno)
    • Run on: any machine with kubectl access
    • Example Kyverno policy manifest kyverno-disallow-hostipc-prod-apps.yaml:
    • Apply it:
  5. Clean up or recreate existing pods that currently use hostIPC in each namespace
    • Run on: any machine with kubectl access
    • Then update the corresponding Deployment/StatefulSet/Job manifests to remove hostIPC: true from spec.template.spec.
  6. Verification (all namespaces)
    • Run on: any machine with kubectl access
    • Confirm the output is:
      NO_HOSTIPC

Additional Reading: