home / blog
2026-10-31 · critical
CVE-2026-54523: cross-namespace escalation Kyverno 1.18.0
Privilege escalation in Kyverno: users create resources across namespaces with controller privileges.

CVE-2026-54523 is a critical vulnerability in Kyverno, a policy engine for cloud-native Kubernetes platforms, in versions from 1.18.0 onward: the CEL compiler in NamespacedMutatingPolicy exposes the generator library to matchConditions, allowing a namespace-scoped policy to execute generator.apply() with an arbitrary target namespace. Kyverno's admission controller, operating with cluster-wide privileges, does not properly enforce the original namespace scope, allowing resource creation in unauthorized namespaces.
Severity is maximum (CVSS 9.6, critical). A user who can create NamespacedMutatingPolicy in a single namespace can induce the controller to generate ConfigMaps, Secrets, RoleBindings, NetworkPolicies and other resources in different and unauthorized namespaces. In multi-tenant environments, this enables privilege escalation and uncontrolled resource modification across the cluster with the same permissions as the controller (cluster-wide). The flaw was documented on August 26, 2026; social signals in late October 2026 indicate public awareness of the vulnerability.
Kubernetes administrators must update Kyverno to version 1.18.2 or later without delay. Verify version with 'kyverno version'; if version is from 1.18.0 through versions before 1.18.2, plan immediate update. Check RBAC to restrict NamespacedMutatingPolicy creation to system admins only, not tenants. Enable audit logging for policy-create events in non-admin namespaces and monitor anomalous cross-namespace Secrets and RoleBindings creation as exploitation indicator.
Validation in the CEL compiler (pkg/cel/policies/mpol/validate.go) and in GenerateResources (pkg/cel/libs/context.go) was strengthened in version 1.18.2 to enforce namespace scope and reject cross-namespace targets. No known workarounds exist other than upgrading.
At a glance
- What
- CVE-2026-54523 affects the CEL compiler in Kyverno's NamespacedMutatingPolicy (versions from 1.18.0 through versions before 1.18.2). It exposes the generator library to matchConditions, allowing a namespace-scoped policy to invoke generator.apply() with an arbitrary target namespace. The admission controller, running with cluster-wide privileges, does not validate namespace scope and allows resource creation of ConfigMaps, NetworkPolicies, Secrets, RoleBindings and other objects in different namespaces.
- Severity
- CVSS 9.6 (critical). Declared critical vulnerability. A user who can create NamespacedMutatingPolicy in one namespace can force the controller to create sensitive resources (Secrets, RoleBindings) in other namespaces, enabling privilege escalation and unauthorized resource modification in multi-tenant Kubernetes environments with cluster-wide privileges.
- Affected versions
- Kyverno 1.18.0 through versions before 1.18.2. Fixed version: 1.18.2 and later.
- Fix
- Update to Kyverno version 1.18.2 or later. The fix strengthens validation in the CEL compiler (pkg/cel/policies/mpol/validate.go) and in GenerateResources (pkg/cel/libs/context.go) to enforce namespace scope and reject cross-namespace targets.
- Status
- Published NVD on August 26, 2026. Patch version available: 1.18.2. Vulnerability confirmed and resolved. Social signals present in late October 2026.
- Action
- Verify Kyverno version in use by running 'kyverno version'. If version is from 1.18.0 through versions before 1.18.2, update immediately to 1.18.2 or later. Check RBAC: restrict NamespacedMutatingPolicy creation to system admins only. Enable audit logging for policy-create events in non-admin namespaces. Monitor unexpected cross-namespace Secrets and RoleBindings creation.
Sources: NVD, CVE-2026-54523