More Info:
The ability to create pods in a namespace can provide a number of opportunities for privilege escalation, such as assigning privileged service accounts to these pods or mounting hostPaths with access to sensitive data (unless Pod Security Policies are implemented to restrict this access)Risk Level
LowAddress
SecurityCompliance 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)
- 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
Remediation
Manual Steps
Manual Steps
-
List all roles/clusterroles that grant
createon pods (run on any machine with kubectl access): -
For each Role that should not allow pod creation, edit it to remove
createfrom any rule that includespods(run on any machine with kubectl):In the editor, find any rule like:Change to:or remove the entire rule ifpodsaccess is not needed, then save and exit. -
For each ClusterRole that should not allow pod creation, edit it similarly (run on any machine with kubectl):
In the editor, remove
createfrom any verbs list that applies topods, or remove thepodsrule entirely, then save and exit. -
For any Role/ClusterRole that must still allow some users to create pods, consider creating a separate, narrowly-scoped role for them and binding it only to the required subjects (run on any machine with kubectl):
-
Review RoleBindings and ClusterRoleBindings to ensure only intended subjects are linked to any remaining roles/clusterroles that have
podscreate(run on any machine with kubectl):Adjust bindings as needed: -
Verification (run on any machine with kubectl access):
Using kubectl
Using kubectl
On any machine with kubectl access:Edit Edit
- List all Roles/ClusterRoles that can create pods
- For each Role in a namespace where pod creation should be removed, edit it to drop
createonpods:
create for pods from a specific Role/tmp/role-<ROLE_NAME>.yaml:- In every
.rules[]whereresourcesincludespods, removecreatefrom theverbslist. - If
verbsbecomes empty, remove that rule entry entirely.
- For each ClusterRole where pod creation should be removed, do the same:
/tmp/clusterrole-<CLUSTERROLE_NAME>.yaml:- In every
.rules[]whereresourcesincludespods, removecreatefromverbs, or delete the rule if it only providedcreateon pods.
- (Optional) If a role exists only to permit pod creation and is no longer needed, delete it:
- Verify that no Roles/ClusterRoles retain
createon pods:
Automation
Automation

