Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain credentials with Policy creation permissions
-
DeliveryCraft malformed forEach mutation policy
-
ExploitSubmit policy to Kubernetes API
-
InstallBackground controller processes policy
-
C2Type assertion fails triggering crash
-
ExecuteController enters CrashLoopBackOff
-
ImpactAdmission webhook blocks matching resource operations
-
Step 8Cluster-wide denial of service persists
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
|
| Exploitation Conditions | Requires Kubernetes RBAC permissions to create Policy or ClusterPolicy custom resources in the cluster - typically granted only to platform administrators, SREs, or DevOps teams managing policy enforcement. Does NOT require cluster-admin or elevated node access, just namespace-level policy creation rights for Policy objects or cluster-level rights for ClusterPolicy. Exploitation limited to clusters running vulnerable Kyverno versions (pre-1.17.2 or pre-1.16.4) with the legacy policy engine enabled. Only affects resources and controllers processing legacy policy DSL - CEL-based policy engine is immune. Attack succeeds against default Kyverno configurations without requiring specific feature flags or non-standard deployment modes. Primary limiting factor is RBAC boundary: in well-configured clusters, policy creation is restricted to trusted identities; in multi-tenant or loosely controlled environments where developers have broad policy permissions, the attack surface expands significantly. |
| Impact | Real-world risk is moderate despite 7.7 CVSS score. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H) correctly reflects network-accessible low-complexity attack requiring only low privileges, with Changed scope due to cluster-wide controller crash and High availability impact. However, exploitation requires RBAC permissions to create policies - a privilege typically restricted to platform administrators, not regular users. EPSS data not provided but expected to be low given the narrow privilege requirement. No CISA KEV listing indicates this is not being exploited at scale. Public exploit code exists via the referenced GitHub commits showing the exact vulnerability pattern. Primary risk is insider threat or compromised service accounts with policy management permissions. For multi-tenant Kubernetes environments where multiple teams manage their own policies via isolated namespaces, this becomes more concerning as any tenant with ClusterPolicy permissions can DOS the entire cluster. Organizations without strict RBAC controls on policy creation face higher practical risk than the 7.7 score alone suggests. |
| Exploit ScenarioDerived | An attacker with Policy creation permissions (either through compromised credentials or insider access) crafts a Kyverno policy with a malformed forEach mutation structure that triggers the unchecked type assertion. Upon policy creation, the cluster-wide background controller attempts to reconcile the policy, encounters the type assertion failure, and crashes into CrashLoopBackOff. Simultaneously, the admission webhook fails when processing any resources matching the policy's criteria, blocking legitimate operations like pod deployments. The denial of service persists across controller restarts until an administrator identifies and deletes the malicious policy, during which time affected workload deployments are completely blocked. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 24, 2026
A type assertion bug in Kyverno's forEach mutation handler crashes the cluster-wide background controller into CrashLoopBackOff and blocks admission controller operations, causing denial of service for policy-matched resources. Any authenticated user with Policy or ClusterPolicy creation permissions can trigger the crash by creating a malformed policy. The vulnerability affects Kyverno versions prior to 1.17.2 and 1.16.4, is limited to the legacy policy engine (CEL-based policies unaffected), and persists until the malicious policy is deleted. Vendor-released patches available with confirmed fix commits on GitHub.
RemediationAI
Upgrade to Kyverno version 1.17.2 or later for 1.17.x deployments, or version 1.16.4 or later for 1.16.x deployments. The fix is implemented in commits 76c8fdbe87328722e099e1fd44c3f21c9f7809cb and 80e728c2283a0c65e5adb02d8a907106e6ebe7e3 available at the referenced GitHub URLs. As an immediate workaround prior to patching, implement strict RBAC controls limiting Policy and ClusterPolicy creation permissions to only highly trusted administrators - use Kubernetes admission controllers or OPA Gatekeeper to enforce least-privilege on policy management. If a crash loop is already occurring, identify and delete the malformed policy via kubectl to restore controller operation, then investigate how unauthorized policy creation occurred. Migrating legacy policies to CEL-based format eliminates exposure to this vulnerability class but requires policy rewriting effort and testing. Organizations using managed Kyverno deployments should consult their platform provider for patch application timelines.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Kyverno is a Kubernetes-native policy engine that validates, mutates, and generates resources. The vulnerability (CWE-617: Reachable Assertion) exists in the legacy policy engine's forEach mutation handler, where an unchecked type assertion causes a runtime panic when processing malformed policy objects. The background controller, which reconciles policy state cluster-wide, enters CrashLoopBackOff when the assertion fails, while the admission webhook drops connections attempting to process matching resources. This affects the legacy policy DSL; the newer CEL (Common Expression Language) policy engine uses different code paths and remains unaffected. The CPE identifier cpe:2.3:a:kyverno:kyverno indicates all Kyverno instances below the patched versions are vulnerable regardless of Kubernetes distribution.
Know when Kyverno gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
Kyverno is a policy engine designed for cloud native platform engineering teams. Prior to versions 1.17.2 and 1.16.4, an unchecked type assertion in the forEach mutation handler allows any user with permission to create a Policy or ClusterPolicy to crash the cluster-wide background controller into a persistent CrashLoopBackOff. The same bug also causes the admission controller to drop connections and block all matching resource operations. The crash loop persists until the policy is deleted. The vulnerability is confined to the legacy engine, and CEL-based policies are unaffected. Versions 1.17.2 and 1.16.4 fix the issue.
Executive ViewAI
Kyverno versions prior to 1.17.2 and 1.16.4 contain a type assertion bug that allows authenticated users with policy creation permissions to crash the cluster-wide background controller and block admission control operations, effectively disabling policy enforcement across the cluster until the malicious policy is removed. This denial-of-service vulnerability directly impacts any organization using Kyverno for Kubernetes policy governance and could prevent legitimate policy validations from executing.
Vendor-released patch: Kyverno 1.17.2 and 1.16.4. Until patching is completed: (1) Restrict RBAC permissions for ClusterPolicy and Policy resource creation to trusted administrators only; (2) Monitor kyverno-background-controller for CrashLoopBackOff state and configure alerts; (3) Prepare runbook to quickly delete malicious policies if crash occurs; (4) Migrate policy rules to CEL-based policies which are not affected by this vulnerability.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
Cross-namespace privilege escalation in Kyverno 1.18.0-1.18.1 lets any tenant who can create a NamespacedMutatingPolicy
Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.7), this vulnerability is remotely explo
Kyverno is a policy engine designed for cloud native platform engineering teams. Rated high severity (CVSS 8.5), this vu
Kyverno versions up to 1.16.3 is affected by allocation of resources without limits or throttling (CVSS 7.7).
Kyverno is a policy engine designed for cloud native platform engineering teams. Rated medium severity (CVSS 5.8), this
Kyverno versions 1.16.0 and later contain a server-side request forgery vulnerability in unrestricted CEL HTTP functions
Privilege escalation in Kyverno before 1.19.1 allows an authenticated Kubernetes namespace tenant with Policy/apiCall au
Policy enforcement bypass in Kyverno v1.9.0 through v1.12.7 lets an authenticated Kubernetes user evade an enforce-mode
Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.8), this vulnerability is remotely explo
Cross-namespace information disclosure in Kyverno before 1.19.1 allows an authenticated low-privilege tenant to read res
Credential leakage in Kyverno's apiCall service mode automatically forwards the Kubernetes admission controller's Servic
EUVD-2026-25392
GHSA-fpjq-c37h-cqcv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB