CVE-2026-122309: Kyverno CEL policy denial of service via unbounded evaluation

CVE-2026-122309 · Severity: medium · CVSS 6.2 · Published 2026-11-05

Kyverno is a policy engine that validates and manages Kubernetes cluster resources. This vulnerability allows users with namespace-level permissions to create malicious policies that cause excessive CPU and memory consumption, crashing the Kyverno service and blocking all cluster-wide resource admission until it recovers. An attacker can construct a small policy expression that, when evaluated, allocates gigabytes of memory by combining nested loops and large ConfigMap data.

Technologies: Kyverno. Vendors: Kyverno.

Quick answers

Is CVE-2026-122309 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-122309 being exploited in the wild.
How severe is CVE-2026-122309?
Medium severity, with a CVSS score of 6.2, published 5 November 2026.
Which products and versions are affected?
Kyverno before 1.19.2.
Is there a fix for CVE-2026-122309?
Yes: fixed in 1.19.2. Until then: Restrict NamespacedValidatingPolicy and NamespacedDeletingPolicy creation to trusted namespace administrators via RBAC, or disable CEL policy expressions if not required for your cluster operations. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-122309 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-122309?
Check whether you run 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

  • Fixed in: 1.19.2

Restrict NamespacedValidatingPolicy and NamespacedDeletingPolicy creation to trusted namespace administrators via RBAC, or disable CEL policy expressions if not required for your cluster operations.

Technical details

Kyverno's CEL expression compiler and evaluator lack runtime cost limits, allowing namespace-scoped policy authors to craft expressions with exponential memory amplification through nested map comprehensions. The vulnerability exists in the CEL compilation paths (pkg/cel/compiler/compiler.go) which call env.Program(ast) without cel.EvalOptions, cel.CostLimit, or cel.InterruptCheckFrequency, and subsequent evaluation via ContextEval has no budget constraints. An attacker-controlled ~200 byte expression combined with a typical ConfigMap (≤1 MB) can allocate >1 GB per evaluation.

Affected products

  • Kyverno Kyverno before 1.19.2

Timeline

  • 2026-10-21: disclosed
  • 2026-11-05: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.