Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain authenticated K8s access
-
DeliveryCreate malicious ClusterPolicy with attacker-controlled apiCall URL
-
ExploitTrigger policy evaluation via resource creation
-
InstallKyverno sends ServiceAccount token to attacker server
-
C2Capture token from HTTP request
-
ExecuteAuthenticate to K8s API with stolen token
-
ImpactPatch webhook configuration for persistence
-
Step 8Achieve cluster-wide code execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must possess authenticated Kubernetes API access with RBAC permissions to create or modify ClusterPolicy resources (PR:L), which typically requires namespace-admin or policy-author roles in organizations using Kyverno. The Kyverno admission controller must have network egress capability to reach attacker-controlled servers, which is default in most Kubernetes deployments unless restrictive NetworkPolicies are enforced. The apiCall feature must be enabled in ClusterPolicy configurations, which is a standard Kyverno capability used for external data lookups during policy evaluation. Exploitation is limited by the need for initial authenticated cluster access and ClusterPolicy modification permissions, but these are commonly granted in multi-tenant environments where namespace owners author their own policies. No user interaction required (UI:N) once the malicious policy is created. Default Kyverno installations without additional RBAC hardening or egress restrictions are exploitable. |
| Impact | Real-world risk is HIGH despite requiring authenticated access (PR:L). CVSS 8.1 accurately reflects the severity given network attack vector (AV:N), low complexity (AC:L), and high confidentiality/integrity impact. The privilege requirement is deceptive - any authenticated Kubernetes user with permission to create or modify ClusterPolicy resources can exploit this, which in many clusters includes namespace administrators or policy authors. The attack is automatable once initial policy creation access is obtained, and the impact is cluster-wide compromise through webhook manipulation. SSVC decision would likely classify as Scheduled or Out-of-Cycle given the straightforward exploitation path and severe technical impact (total control over admission control). The information disclosure tag understates the severity - while technically token exfiltration, the stolen credential provides full cluster admin capabilities. No EPSS or KEV data provided, but the low attack complexity and clear exploitation path to cluster compromise warrant immediate patching. The availability of patches across three version branches (1.16.x, 1.17.x, 1.18.x) indicates vendor acknowledgment of criticality. |
| Exploit ScenarioDerived | An attacker with namespace-admin privileges in a multi-tenant Kubernetes cluster creates a malicious ClusterPolicy containing an apiCall directive pointing to their controlled server (attacker.example.com). When Kyverno's admission controller evaluates this policy during a pod creation event, it automatically makes an HTTP request to the attacker's server with the ServiceAccount bearer token in the Authorization header. The attacker captures the token, uses it to authenticate to the Kubernetes API server with admission controller privileges, then patches the MutatingWebhookConfiguration to inject malicious code into all pod deployments cluster-wide, achieving persistent cluster compromise. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 24, 2026
Kyverno's apiCall feature automatically attaches the admission controller's ServiceAccount token to HTTP requests without validating the destination URL, enabling authenticated attackers to exfiltrate tokens to attacker-controlled servers and achieve full cluster compromise through webhook configuration tampering. Affects Kyverno versions prior to 1.18.0-rc1, 1.17.2-rc1, and 1.16.4. Vendor-released patches available across all three affected version branches. EPSS data not provided, but the vulnerability enables privilege escalation from low-privilege Kubernetes user to cluster admin via token theft, representing critical risk in multi-tenant environments.
RemediationAI
Upgrade Kyverno to patched versions: 1.18.0-rc1 or later for 1.18.x deployments, 1.17.2-rc1 or later for 1.17.x deployments, or 1.16.4 or later for 1.16.x deployments. Patches implement URL validation and restrict ServiceAccount token attachment in apiCall features per commits bc4f91c, c2eab00, and f70e8ac. If immediate patching is not feasible, implement compensating controls by restricting ClusterPolicy create/update RBAC permissions to only highly trusted administrators (reducing attack surface to PR:H effectively), deploying network policies to block egress from the kyverno admission controller pods to external networks (prevents token exfiltration but may break legitimate apiCall use cases requiring external connectivity), and enabling comprehensive audit logging for ClusterPolicy modifications and admission controller network connections to detect exploitation attempts. Review existing ClusterPolicy resources for unexpected apiCall directives pointing to non-organizational domains. Note that egress blocking will disable all external apiCall functionality, potentially breaking legitimate policy workflows. Full remediation details at https://github.com/kyverno/kyverno/security/advisories/GHSA-f9g8-6ppc-pqq4.
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 policy engine that uses admission webhooks to enforce policies. The vulnerable apiCall feature allows ClusterPolicy resources to make external HTTP calls during policy evaluation. The flaw (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) lies in the automatic attachment of the admission controller's ServiceAccount token to these HTTP requests combined with complete absence of URL validation. In Kubernetes RBAC architecture, the admission controller ServiceAccount requires elevated privileges including the ability to patch MutatingWebhookConfiguration and ValidatingWebhookConfiguration resources to manage its own webhook endpoints. By directing apiCall to an attacker-controlled HTTPS endpoint, the ServiceAccount bearer token is leaked in the Authorization header, which can then be replayed to the Kubernetes API server with full admission controller privileges.
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:U/C:H/I:H/A:N
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.18.0-rc1, 1.17.2-rc1, and 1.16.4, Kyverno's apiCall feature in ClusterPolicy automatically attaches the admission controller's ServiceAccount token to outgoing HTTP requests. The service URL has no validation - it can point anywhere, including attacker-controlled servers. Since the admission controller SA has permissions to patch webhook configurations, a stolen token leads to full cluster compromise. Versions 1.18.0-rc1, 1.17.2-rc1, and 1.16.4 patch the issue.
Executive ViewAI
Kyverno versions prior to 1.18.0-rc1, 1.17.2-rc1, and 1.16.4 contain an authentication token exfiltration vulnerability in the apiCall feature that allows authenticated cluster users to steal the admission controller's ServiceAccount token and achieve full cluster compromise. Organizations running affected Kyverno deployments face immediate risk of privilege escalation from standard user accounts to cluster-wide administrator control, with particular impact in multi-tenant Kubernetes environments where blast radius extends across all workloads.
Vendor-released patch. Until patching: (1) Disable or remove all apiCall rules from active policies; (2) implement network policies to block egress from Kyverno controller pods except to approved internal API endpoints; (3) enforce RBAC to prevent low-privilege users from creating or modifying ClusterPolicy resources; (4) enable audit logging of all policy configuration changes and ServiceAccount token access.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-25389
GHSA-f9g8-6ppc-pqq4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB