High priorityDisclosed

Advisory · CVE-2026-122305

Self-referential variables can hang Kyverno's admission webhook

Kyverno before 1.19.2 lets low-privileged users hang the admission webhook with self-referential variable templates in substituteVariablesIfAny, causing unbounded substitution loops that exhaust CPU and memory and block cluster-wide admission. Kyverno rates it CVSS 4.0 8.3.

Vendor
Kyverno
Product
Kyverno
Identifier / CWE
CVE-2026-122305
CWE-835
Action timing
Immediate
ELI5

Explain it like I’m five

A policy variable that points back at itself makes Kyverno chase its own tail forever, until the webhook runs out of CPU and stops answering for everyone.

SIMPLIFIED_ATTACK_PATH04 STEPS
  1. 01Crafted resource submitted

    A low-privileged user creates a resource whose annotations re-introduce an embedded policy variable.

  2. 02Substitution loops

    substituteVariablesIfAny expands the variable again and again with no bound.

  3. 03CPU and memory exhausted

    The unbounded loop consumes the admission webhook's resources.

  4. 04Admission blocked

    Cluster-wide admission stalls while the webhook is hung.

What happened

Kyverno disclosed CVE-2026-122305 for Kyverno before 1.19.2. The substituteVariablesIfAny function allows low-privileged users to hang the admission webhook with self-referential variable templates: a resource whose annotations re-introduce the embedded policy variable triggers unbounded substitution loops that exhaust CPU and memory and block cluster-wide admission.

The advisory rates it CVSS 4.0 8.3 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 submit resources carrying policy variable annotations.
  4. Watch admission webhook latency and resource usage for signs of substitution loops.
  5. Review recent resource submissions for self-referential variable templates.

Management note

A denial of service against the admission webhook is a denial of service against the whole cluster’s ability to change. It needs no privilege worth mentioning, so it belongs in the same patch window as the critical flaws.