CVE-2026-54523: Kyverno: NamespacedGeneratingPolicy generator.apply() namespace argument unvalidated -- background controller creates RoleBindings in any namespace including kube-system
Kyverno is a policy engine designed for cloud native platform engineering teams. From 1.18.0 until 1.18.2, the NamespacedMutatingPolicy CEL compiler exposes the generator library to matchConditions, allowing a namespace-scoped policy to invoke generator.apply(namespace, resources) with an arbitrary target namespace. The validation in pkg/cel/policies/mpol/validate.go checks that the policy compiles but does not enforce namespace scope, and GenerateResources in pkg/cel/libs/context.go does not reject the cross-namespace target. A user who can create NamespacedMutatingPolicy objects in one namespace can cause the admission controller, operating with cluster-wide privileges, to create ConfigMaps, NetworkPolicies, Secrets, RoleBindings, and other resources in another namespace, enabling unauthorized modification and potential privilege escalation. This issue is fixed in version 1.18.2.
Security readout for executives and security teams
Plain-English summary
Kyverno 1.18.0 and 1.18.1 can let a user with permission to create certain namespace-scoped policies make Kyverno create resources in other namespaces. Because Kyverno operates with broad cluster privileges, this could modify sensitive namespaces, expose secrets, or enable privilege escalation.
Executive priority
Treat this as an immediate patching priority for affected clusters, especially multi-tenant environments. The flaw crosses namespace security boundaries and may convert limited policy permissions into cluster-impacting modification or privilege escalation. Investigate historical activity alongside upgrading.
Technical view
Namespace enforcement is missing when generator.apply(namespace, resources) is exposed through NamespacedMutatingPolicy match conditions. Compilation validation does not constrain the supplied target namespace, and resource generation accepts cross-namespace targets. This is an authorization failure classified as CWE-862, with CVSS 3.1 score 9.6.
Likely exposure
Exposure is limited to Kyverno versions 1.18.0 through 1.18.1 where users or service accounts can create NamespacedMutatingPolicy objects. Risk is greatest in multi-tenant clusters and environments delegating namespace policy administration to less-trusted identities.
Exploitation context
Exploitation requires low-privileged authenticated access with permission to create the affected policy type. Successful abuse could use Kyverno's cluster-wide privileges to create resources such as RoleBindings or Secrets outside the attacker's namespace. The bundle reports no KEV listing and provides no evidence of active exploitation.
Researcher notes
The supplied title refers to NamespacedGeneratingPolicy and the background controller, while the description identifies NamespacedMutatingPolicy, matchConditions, and the admission controller. Confirm exact object and controller terminology against the vendor advisory. The affected range and stated fix consistently identify versions 1.18.0 to before 1.18.2.
Mitigation direction
Upgrade Kyverno to version 1.18.2 or later.
Restrict creation and modification of NamespacedMutatingPolicy objects until upgrading.
Review vendor guidance and release notes before applying the update.
Temporarily reduce delegated policy-authoring permissions where operationally feasible.
Validation and detection
Inventory Kyverno versions across every Kubernetes cluster.
Identify identities allowed to create or modify NamespacedMutatingPolicy objects.
Review Kubernetes audit logs for unexpected cross-namespace resources created by Kyverno.
Inspect sensitive namespaces for anomalous RoleBindings, Secrets, ConfigMaps, or NetworkPolicies.
Confirm upgraded deployments report Kyverno 1.18.2 or later.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-862: Authorization and privilege behavior lookup
Authorization weaknesses can support privilege escalation and valid-account review, depending on exploit path. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references privilege impact, so privilege escalation and authorization behavior review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
7Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-862 · source CWE mapping
Missing Authorization
Missing Authorization represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.