Executive brief
Kyverno is a policy engine for Kubernetes clusters that validates and mutates workloads using custom policies. Tenants with permission to create policies in their namespace can bypass namespace isolation to read cached cluster-wide data they should not have access to, including sensitive information from other namespaces. An attacker could exploit this to access confidential cluster data such as secrets or configuration from restricted namespaces.
Technical details
The globalcontext.Lib CEL library is registered in Kyverno's policy compilation environment without namespace confinement, unlike sibling libraries (resource.Lib, http.Lib) which receive the policy's namespace to restrict their access. A tenant can create a NamespacedValidatingPolicy (or mutating, deleting, generating, image-validating variants) and call globalContext.get() with an empty projection to retrieve unfiltered cached contents of cluster-scoped GlobalContextEntry objects from all namespaces, bypassing RBAC restrictions. The vulnerability requires a GlobalContextEntry spanning multiple namespaces to exist and affect data exposure only.
Affected products
- Kyverno Kyverno 1.16.0 through 1.19.0
Timeline
- 2026-09-26: disclosed
- 2026-09-26: patched: Fixed in version 1.19.1