You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
id: k8s-role-pod-createinfo:
name: Roles that have pod create permissionsauthor: domwhewell-sageseverity: lowdescription: Checks for roles that have permissions to create pods.impact: | Pods that have the service account with a role that allows them to create pods, could allow a pod breakout.remediation: Configure pods so they are not assigned the permission to create other podsreference:
- https://kubernetes.io/docs/concepts/security/rbac-good-practices/#least-privilege
- https://cloud.hacktricks.wiki/en/pentesting-cloud/kubernetes-security/abusing-roles-clusterroles-in-kubernetes/index.htmltags: cloud,devops,kubernetes,devsecops,roles,k8s,k8s-cluster-securityflow: | code(1); for (let role of template.items) { set("role", role) javascript(1); }self-contained: truecode:
- engine:
- sh
- bashsource: kubectl get role --all-namespaces --output=jsonextractors:
- type: jsonname: itemsinternal: truejson:
- '.items[]'javascript:
- code: | let role = JSON.parse(template.role); let riskyRules = 0; role.rules.forEach(rule => { if ((rule.resources.includes("pods") && rule.verbs.includes("create")) || (rule.resources.includes("pods") && rule.verbs.includes("*")) || (rule.resources.includes("*") && rule.verbs.includes("create")) || (rule.resources.includes("*") && rule.verbs.includes("*"))) { riskyRules++; } }); if (riskyRules > 0) { let result = (`Role '${role.metadata.name}' in namespace '${role.metadata.namespace}' has ${riskyRules} rule(s) with 'pods' resource and 'create' verb.`); Export(result); } extractors: - type: dsl dsl: - response
Is there an existing template for this?
Nuclei Template
Relevant dumped responses
Anything else?
This template should flag up roles with dangerous permissions to create pods, potentially allowing for pod breakout #11545
The text was updated successfully, but these errors were encountered: