Advisory · CVE-2026-122311
Kyverno CEL resource calls can walk out of a namespace with path traversal
Kyverno 1.16.0 before 1.19.2 does not validate path segments in the resource argument of resource.get() and resource.post(), so namespaced CEL policies can insert .. segments and read or write arbitrary cluster objects with the admission controller's ServiceAccount. Kyverno rates it CVSS 3.1 9.9.
- Vendor
- Kyverno
- Product
- Kyverno
- Identifier / CWE
- CVE-2026-122311
CWE-22 - Action timing
- Immediate
Explain it like I’m five
A policy language that is supposed to stay inside one namespace lets an attacker type '..' and walk out the door, then read or change anything in the cluster.
- 01Namespaced CEL policy created
A tenant who can create a NamespacedValidatingPolicy writes CEL using resource.get() or resource.post().
- 02Traversal segments inserted
The resource argument carries .. segments that are never validated.
- 03Namespace escape
The admission controller's ServiceAccount follows the path to arbitrary cluster objects.
- 04Cluster takeover
The attacker can read and write cluster objects, including Secrets and policies.
What happened
Kyverno disclosed CVE-2026-122311 for Kyverno 1.16.0 before 1.19.2. The resource argument of resource.get() and resource.post() is not validated for path segments, so namespaced CEL policies can insert .. segments to escape their namespace. Tenants who can create a NamespacedValidatingPolicy can read and write arbitrary cluster objects using the admission controller’s ServiceAccount, leading to cluster takeover.
The advisory rates it critical at CVSS 3.1 9.9 and identifies Kyverno 1.19.2 as the fixed release.
What to do
- Inventory Kyverno installations and confirm the deployed version.
- Upgrade affected installations to Kyverno 1.19.2 or later using the project release guidance.
- While remediation is underway, limit who can create NamespacedValidatingPolicy objects.
- Review Kubernetes audit logs for resource.get() and resource.post() calls with .. segments and for cluster-scoped access from the admission controller’s ServiceAccount.
- Audit cluster objects, especially Secrets and policies, for unexpected reads or changes.
Management note
Path traversal inside the policy engine turns a namespaced tenant into a cluster administrator. In a shared cluster this is a full trust boundary failure, so upgrade first and investigate second.