CVE-2026-122311: Kyverno Path Traversal in CEL Resource Functions
CVE-2026-122311 affects Kyverno from 1.16.0 up to (not including) 1.19.2 and is scored CVSS 9.9 (Critical).
Kyverno fails to validate the path segments in the resource argument of the CEL functions resource.get() and resource.post(). A tenant who can create a NamespacedValidatingPolicy can insert .. segments and escape the namespace, reading and writing arbitrary cluster resources.
Key Facts
| Field | Detail |
|---|---|
| CVE | CVE-2026-122311 |
| Severity | Critical (CVSS 9.9) |
| Product | Kyverno |
| Affected | 1.16.0 up to, but not including, 1.19.2 |
| Fixed in | 1.19.2 |
| Prerequisite | Ability to create a NamespacedValidatingPolicy |
| Impact | Read and write of arbitrary cluster resources |
| Published | 2026-11-05 |
Why It Matters
A validating policy is normally expected to be a read-only guard. Here, a namespaced policy author can use the CEL helpers to issue API requests with traversal sequences and reach cluster-scoped endpoints or other namespaces. In multi-tenant clusters this is a path from namespace-level access to cluster-wide control.
Remediation
- Upgrade Kyverno to 1.19.2 or later.
- Limit who can create
NamespacedValidatingPolicyobjects until patched. - Search existing policies for
resource.get()orresource.post()calls whose arguments contain... - Review Kubernetes API audit logs for requests originating from the Kyverno service account that touch unexpected namespaces or cluster-scoped resources.