Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Kyverno policy-write RBAC rights
-
DeliveryDeploy attacker-controlled HTTP capture endpoint
-
ExploitCreate ClusterPolicy with apiCall.service.url targeting capture endpoint
-
ExecutionTrigger matching admission event (e.g., create Pod)
-
PersistKyverno auto-injects SA bearer token into outbound request
-
ImpactCapture and replay token for full cluster control
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 | Exploitation requires that the attacker hold Kubernetes RBAC permissions sufficient to create or modify Kyverno ClusterPolicy or Policy resources - this is the critical gate. The apiCall service mode must be used in the policy rule (apiCall.service.url must reference an HTTP endpoint rather than a Kubernetes API path). No special non-default Kyverno configuration is required beyond what is present in any standard installation; the credential forwarding behavior is active by default whenever the service URL path is used. Exploitation is additionally limited to contexts where the attacker can trigger a matching admission event (e.g., create a Pod if the policy matches Pod resources). Factors that limit exposure: environments where only cluster-admin or a tightly controlled CI/CD identity can write policies are substantially protected; clusters that use only apiCall with Kubernetes-internal API paths (not service.url) are not directly affected by this specific code path. |
| Impact | The CVSS 4.0 score of 8.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N) accurately reflects the threat model: network-reachable exploitation at low complexity requiring only policy-write privileges, with high confidentiality impact on both the vulnerable Kyverno system and subsequent cluster systems via the exfiltrated token. Real-world risk is elevated beyond the raw score because the exfiltrated SA token grants administrative-equivalent control over Kyverno policies and cluster resources, making this effectively a privilege escalation path from policy-author to cluster-admin. No EPSS score is available in the provided data, making exploitation probability rate estimation unreliable. The absence of a CISA KEV listing means active exploitation is not confirmed, but the embedded PoC lowers the bar to exploitation significantly - any user with ClusterPolicy creation rights can trivially reproduce the attack in minutes. The primary limiting factor is the PR:L prerequisite: an attacker must already hold permissions to create Kyverno ClusterPolicy or Policy resources, which in well-governed clusters is restricted to elevated roles. In clusters with permissive RBAC or developer self-service policy authoring, exposure is substantially higher. |
| Exploit ScenarioDerived | An attacker with Kubernetes RBAC permissions to create ClusterPolicy resources deploys a capture server inside or outside the cluster and creates a Kyverno ClusterPolicy with a rule that matches Pod admission events and includes an apiCall pointing to the attacker-controlled service URL. When any user subsequently creates a Pod, Kyverno's admission webhook fires, executes the apiCall, and automatically injects the Kyverno admission controller's ServiceAccount bearer token into the HTTP request - which the capture server logs. The attacker then uses the token to impersonate the Kyverno service account and gain full control over cluster policies and resources. A working proof-of-concept demonstrating all four steps is included in GHSA-8wfp-579w-6r25. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Credential leakage in Kyverno's apiCall service mode automatically forwards the Kubernetes admission controller's ServiceAccount bearer token to any external HTTP endpoint referenced in a policy, including attacker-controlled servers. Affecting Kyverno before 1.16.4 (fix version disputed - see confidence notes), this insecure-by-default behavior requires only policy-creation privileges to exploit: a low-privileged user crafts a ClusterPolicy pointing apiCall.service.url at an attacker-controlled host, then triggers a matching admission event, causing Kyverno to self-exfiltrate its SA token. No public exploit is confirmed in CISA KEV, but a working proof-of-concept with full reproduction steps is embedded in the GitHub security advisory GHSA-8wfp-579w-6r25.
RemediationAI
The primary fix is to upgrade Kyverno; however, the precise patched release is disputed - the CVE description names 1.16.4 while package-level evidence from the GHSA advisory indicates the fix landed in 1.17.0 (with the PoC confirmed on v1.17.1, suggesting 1.17.0 may not be sufficient). Operators should consult the canonical advisory at https://github.com/kyverno/kyverno/security/advisories/GHSA-8wfp-579w-6r25 to confirm the authoritative patched version before upgrading. As an immediate compensating control, audit all ClusterPolicy and Policy resources for rules using apiCall.service.url and verify that every external URL is organization-controlled; remove or restrict policies referencing untrusted external endpoints. Additionally, tighten RBAC to limit who can create or modify Kyverno policies - this does not eliminate the vulnerability but raises the bar for exploitation. If explicit Authorization headers are required by legitimate external services, policy authors should define them directly, which the vulnerable code path already respects. No side-channel token sanitization workaround is available without patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 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 operates as an admission controller. Its apiCall feature allows policies to enrich context by making outbound HTTP requests - including to arbitrary external service URLs via apiCall.service.url. The vulnerable code path in pkg/engine/apicall/executor.go reads the Kubernetes ServiceAccount token from /var/run/secrets/kubernetes.io/serviceaccount/token and unconditionally injects it as an Authorization: Bearer header into every outbound request when no explicit Authorization header is already set. CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) describes this root cause accurately: the credential is transmitted to parties that have no legitimate need for it. Compounding issues identified in the advisory include use of Header.Add instead of Header.Set (allowing header duplication), absence of trust-boundary validation distinguishing internal Kubernetes API from external endpoints, and lack of documentation for this behavior. The affected CPE is cpe:2.3:a:kyverno:kyverno:*:*:*:*:*:*:*:* for versions below the fix threshold.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
Policy-write access required (PR:L); token exfiltration affects resources beyond Kyverno itself (S:C); no integrity or availability impact from the leakage primitive alone.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Kyverno before 1.16.4 automatically attaches the admission controller's ServiceAccount token to outbound HTTP requests in apiCall service mode without explicit authorization headers. Attackers can exfiltrate the token by directing apiCall requests to external or attacker-controlled endpoints, gaining full control over Kyverno policies and cluster resources.
Technical POC Analysis
Bug class: credential leakage / insecure default (CWE-200, with CWE-522 also assigned by the advisory).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Kyverno, a widely-used Kubernetes policy and admission controller, contains a credential leakage vulnerability that exposes the cluster's ServiceAccount bearer token to external attackers. An attacker with basic policy-creation privileges can exploit this without elevated access to exfiltrate cluster credentials, potentially enabling full cluster compromise and lateral movement across workloads.
No vendor-released patch identified at time of analysis. Interim mitigations include: (1) restrict ClusterPolicy and Policy creation via RBAC to only authorized platform teams, (2) audit existing policies for apiCall.service configurations pointing to external endpoints, (3) implement network policies blocking outbound connections from Kyverno pods except to approved internal services, (4) enable Kubernetes audit logging to track policy creation/modification and monitor for suspicious activity, (5) rotate Kyverno's ServiceAccount token immediately and implement token-rotation schedules, (6) consider temporarily disabling apiCall functionality if not business-critical.
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
Server-side request forgery in Kyverno's Kubernetes admission controller (all versions before 1.18.0) enables any authen
EUVD-2026-69032
GHSA-4x34-82r8-65cf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB