Act nowDisclosed

Advisory · CVE-2026-122303

Kyverno NamespacedMutatingPolicy can overwrite resources in other namespaces

Kyverno 1.17.0 before 1.19.2 lets namespace tenants overwrite resources in other namespaces through NamespacedMutatingPolicy mutate-existing rules, because a CEL expression can fabricate a target in another namespace. Kyverno rates it CVSS 3.1 9.9.

Vendor
Kyverno
Product
Kyverno
Identifier / CWE
CVE-2026-122303
CWE-862
Action timing
Immediate
ELI5

Explain it like I’m five

A tenant writes a policy that says 'change that thing over there' and Kyverno obeys, even though the thing lives in someone else's namespace.

SIMPLIFIED_ATTACK_PATH04 STEPS
  1. 01Mutating policy created

    A namespace tenant creates a NamespacedMutatingPolicy with a mutate-existing rule.

  2. 02CEL fabricates a target

    The targetMatchConstraints.expression returns a CEL map literal with an attacker-chosen metadata.namespace.

  3. 03No namespace check

    The expression output is used without verifying the target belongs to the author's namespace.

  4. 04Privileged controller overwrites

    The background controller overwrites Secrets, Deployments, or policies in the victim namespace.

What happened

Kyverno disclosed CVE-2026-122303 for Kyverno 1.17.0 before 1.19.2. A NamespacedMutatingPolicy mutate-existing rule evaluates a CEL expression to pick its target, and the result is used without a namespace check. An attacker can return a CEL map literal fabricating a target with an attacker-chosen metadata.namespace, causing the privileged background controller to overwrite Secrets, Deployments, or policies in other namespaces.

The advisory rates it critical at CVSS 3.1 9.9 and identifies Kyverno 1.19.2 as the fixed release.

What to do

  1. Inventory Kyverno installations and confirm the deployed version.
  2. Upgrade affected installations to Kyverno 1.19.2 or later using the project release guidance.
  3. While remediation is underway, limit who can create NamespacedMutatingPolicy objects.
  4. Review Kubernetes audit logs for NamespacedMutatingPolicy objects and for mutations to Secrets, Deployments, and policies outside the author’s namespace.
  5. Check victim namespaces for unexpected changes to Secrets and policies and roll back anything unauthorized.

Management note

Namespace isolation is the core promise of multi-tenant Kubernetes. A flaw that lets one tenant rewrite another tenant’s Secrets breaks that promise outright, so patching and a look back through the audit log belong together.