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: cross-namespace escalation Kyverno 1.18.0

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

← All articles