Skip to main content

More Info:

Do not generally permit containers to be run with the securityContext.privileged 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 should host only non-privileged workloads (typically all user workload namespaces; exclude system namespaces like kube-system, kube-public, kube-node-lease if needed). On any machine with kubectl access:
  2. For each target namespace, enforce the Restricted Pod Security Admission policy to block privileged containers. Replace NAMESPACE with the actual namespace name. On any machine with kubectl access:
  3. (Optional but recommended) Configure a cluster-wide warning for less strict baseline violations on all namespaces to help discover workloads that would be affected if you tighten policies further. On any machine with kubectl access:
  4. Attempt to create a privileged pod in a Restricted namespace to confirm admission is blocked. On any machine with kubectl access, replace NAMESPACE as appropriate:
    You should see an admission error indicating the pod is not allowed due to Pod Security restrictions.
  5. Clean up the test pod (if it was created) from the test namespace. On any machine with kubectl access:
  6. Verification (cluster-wide): confirm no currently running containers are privileged. On any machine with kubectl access:
    The output should be:
On any machine with kubectl access:
  1. Identify namespaces with user workloads (example: team-a, team-b, prod-apps). Adjust the list below to your cluster.
  2. Enforce restricted Pod Security Admission (PSA) on those namespaces (blocks privileged pods):
  1. (Optional) Set a cluster‑wide warning level so you see PSA warnings everywhere without blocking:
  1. Verify labels are in place:
  1. Verify no privileged containers remain (same as audit):

Additional Reading: