# CVE-2026-54523: Kyverno NamespacedMutatingPolicy generator.apply() namespace validation bypass

Source: https://junglewise.ai/threats/cve-2026-54523-kyverno-namespacedmutatingpolicy-generator-apply-namespace  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-26. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-54523 · Severity: critical · CVSS 9.6 · Published 2026-08-26

Kyverno is a policy engine for Kubernetes that enforces security and compliance rules. A vulnerability in versions 1.18.0–1.18.1 allows a tenant with permission to create namespace-scoped policies to bypass namespace isolation and create resources (ConfigMaps, Secrets, NetworkPolicies, RoleBindings) in any namespace, including protected system namespaces like kube-system. An attacker can exploit this to inject malicious configuration, disrupt cluster networking, or escalate privileges cluster-wide.

Technologies: [github.com/kyverno/kyverno (Go)](https://junglewise.ai/threats/technologies/github-com-kyverno-kyverno), [Kyverno](https://junglewise.ai/threats/technologies/kyverno). Vendors: [Go](https://junglewise.ai/threats/vendors/go), [Kyverno](https://junglewise.ai/threats/vendors/kyverno).

## Quick answers

**Is CVE-2026-54523 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-54523 being exploited in the wild.

**How severe is CVE-2026-54523?** Critical severity, with a CVSS score of 9.6, published 26 August 2026.

**Which products and versions are affected?** github.com/kyverno/kyverno (Go) >= 1.18.0, <= 1.18.1, SEMVER:introduced=1.18.0,fixed=1.18.2; Kyverno >=1.18.0, <=1.18.1.

**Is there a fix for CVE-2026-54523?** Yes. github.com/kyverno/kyverno (Go): upgrade to 1.18.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-54523 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-54523?** Check whether you run github.com/kyverno/kyverno (Go) or Kyverno at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- github.com/kyverno/kyverno (Go): upgrade to 1.18.2 or later

  ```sh
  go get github.com/kyverno/kyverno@v1.18.2
  ```


## Technical details

The vulnerability is a missing authorization check (CWE-862) in Kyverno's CEL policy compiler. In versions 1.18.0–1.18.1, the `generator` library is unintentionally exposed to NamespacedMutatingPolicy match condition expressions, allowing a tenant to call `generator.apply(namespace, resources)` with an arbitrary namespace argument. The vulnerable function `GenerateResources()` in `pkg/cel/libs/context.go:177` accepts the namespace parameter without validation, unlike correctly-guarded equivalents in ConfigMap loaders and API call handlers. When a namespaced mutating policy is applied (e.g., on ConfigMap creation in a tenant namespace), the admission controller—which runs with cluster-wide RBAC permissions—executes the CEL expression and creates resources in the attacker-specified namespace. No prior authorization check enforces namespace scope, enabling privilege escalation and cross-namespace resource injection. Patches are available in v1.18.2 and later.

## Affected products

- Kyverno Kyverno >=1.18.0, <=1.18.1

## Identifiers

- CVE-2026-54523
- GHSA-79gf-7frw-68m9
- GO-2026-6296

## Timeline

- 2026-05-20: other: Vulnerability reproduced on main branch
- 2026-07-13: disclosed: CVE-2026-54523 / GHSA-79gf-7frw-68m9 published
- 2026-07-22: other: Advisory clarified to document actual v1.18.1 attack vector (NamespacedMutatingPolicy in matchConditions, not NamespacedGeneratingPolicy)
- 2026-08-26: patched: v1.18.2 released with fix

## References

- [https://api.github.com/users/0xVijay](https://api.github.com/users/0xVijay)
- [https://github.com/0xVijay](https://github.com/0xVijay)
- [https://api.github.com/users/0xVijay/gists%7B/gist_id%7D](https://api.github.com/users/0xVijay/gists%7B/gist_id%7D)
- [https://api.github.com/users/0xVijay/repos](https://api.github.com/users/0xVijay/repos)
- [https://avatars.githubusercontent.com/u/53905346?v=4](https://avatars.githubusercontent.com/u/53905346?v=4)
- [https://api.github.com/users/0xVijay/events%7B/privacy%7D](https://api.github.com/users/0xVijay/events%7B/privacy%7D)

## Related threats

- [Kyverno authorization bypass in generate rule validation](https://junglewise.ai/threats/cve-2026-124441-kyverno-before-1-19-2-contains-an-authorization-bypass)
- [Kyverno apiCall authorization bypass in namespace clamp](https://junglewise.ai/threats/cve-2026-124440-kyverno-from-1-19-1-before-1-19-2-contains-an-authorization)
- [Kyverno unbounded decompression in notary signature fetch](https://junglewise.ai/threats/cve-2026-122323-kyverno-from-1-11-0-before-1-19-2-contains-an-unbounded)
- [Kyverno verifyImages signature verification bypass via cache](https://junglewise.ai/threats/cve-2026-122321-kyverno-1-18-0-before-1-19-2-contains-a-signature-verification)
- [Kyverno missing authorization in generate.clone namespace](https://junglewise.ai/threats/cve-2026-122320-kyverno-before-1-19-2-contains-a-missing-authorization)
