Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate to Kubernetes cluster with standard user credential
-
DeliveryIdentify ClusterPolicy using variable-interpolated apiCall.service.url
-
ExploitCraft resource manifest embedding malicious internal URL in controllable annotation
-
InstallSubmit resource via kubectl apply
-
C2Admission controller issues HTTP request to attacker-specified internal endpoint
-
ExecuteNon-JSON or error response body reflected in admission error message
-
ImpactRead exfiltrated data (e.g., IAM credentials) from kubectl output
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires all three of the following conditions to be met simultaneously: (1) the attacker possesses a valid Kubernetes identity with permission to create or update resources of a type covered by an existing ClusterPolicy (such as Pod create rights); (2) at least one ClusterPolicy exists that configures |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N, score 8.3) accurately reflects the attack profile: low complexity, no special conditions, exploitable by any authenticated Kubernetes user, with high confidentiality impact extending to subsequent systems the admission controller can reach. The non-blind nature of the SSRF is the decisive risk amplifier - unlike blind SSRF where attackers must infer results from timing or DNS callbacks, here IAM credential JSON from AWS IMDS surfaces verbatim in kubectl error output, making cloud credential theft trivially automatable. The scope-changed (SC:H) metric is well-justified because the primary harm is to internal infrastructure outside the Kyverno component itself. The primary risk limiter is the prerequisite that a ClusterPolicy with variable-interpolated |
| Exploit ScenarioDerived | An attacker with a standard Kubernetes user account submits a Pod with the annotation |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Server-side request forgery in Kyverno's Kubernetes admission controller (all versions before 1.18.0) enables any authenticated cluster user to redirect the admission controller's privileged HTTP client to cloud metadata endpoints (e.g., AWS IMDS at 169.254.169.254), internal ClusterIP services, and loopback addresses by injecting malicious URLs through JMESPath variable substitution in ClusterPolicy apiCall.service.url definitions. Critically, this is non-blind SSRF: response bodies are reflected back to the attacker through admission error messages visible in kubectl output, enabling direct credential and data exfiltration in a single API call. A fully functional proof-of-concept is published in GHSA-qr4g-8hrp-c4rw; no confirmed active exploitation (CISA KEV) has been identified at time of analysis.
RemediationAI
The CVE description states that versions before 1.18.0 are affected, implying 1.18.0 is the intended fix; however, the Go package-level data records 'fixed in: None,' which is contradictory - verify the exact patched release version against the vendor advisory at https://github.com/kyverno/kyverno/security/advisories/GHSA-qr4g-8hrp-c4rw before upgrading, and do not assume 1.18.0 resolves the issue without independent confirmation. As immediate compensating controls pending a confirmed patch: audit all ClusterPolicies for apiCall.service.url entries that use JMESPath variable substitution and either remove the variable interpolation (replacing with static, pre-approved URLs) or add an admission policy that validates annotation values against an allowlist before they can influence request targets. Apply Kubernetes NetworkPolicy or an in-cluster network policy engine to restrict egress from the Kyverno admission controller pod to only explicitly required upstream endpoints, blocking link-local (169.254.0.0/16), loopback (127.0.0.0/8), and RFC-1918 ranges not needed for policy operation - note this may break legitimate internal apiCall targets and requires policy-by-policy review. On AWS, enforce IMDSv2 (token-required mode) to require session-oriented authenticated requests to the IMDS endpoint, which prevents unauthenticated retrieval of IAM credentials via SSRF, though it does not eliminate SSRF access to other internal services.
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 (CPE: cpe:2.3:a:kyverno:kyverno:*:*:*:*:*:*:*:*) is a Kubernetes-native admission controller that enforces and mutates workload configurations via ClusterPolicy and Policy resources. The apiCall context rule type allows policies to fetch external data during admission evaluation; the service.url field supports Kyverno's JMESPath variable substitution (e.g., {{request.object.metadata.annotations.target}}), which is the documented mechanism for dynamic lookups. CWE-918 (Server-Side Request Forgery) manifests here because user-controlled input from admission request fields is embedded directly into the outbound HTTP request URL without any validation or normalization. Four distinct protections are absent in the HTTP execution path: URL allowlisting, IP/CIDR blocklisting (link-local 169.254.0.0/16 and loopback are reachable), redirect chain re-validation (Go's default CheckRedirect allows up to 10 hops), and response body filtering before surfacing errors. The admission controller's privileged in-cluster network position means it can reach services that the submitting user's own network identity cannot, amplifying the effective attack surface.
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
Network-exploitable by any authenticated Kubernetes user; scope changes because SSRF reaches internal systems beyond Kyverno; no integrity or availability impact applies.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Kyverno before 1.18.0 contains a server-side request forgery vulnerability in apiCall.service.url that allows authenticated users to send arbitrary HTTP requests by injecting user-controlled input through variable substitution. Attackers can target internal services, cloud metadata endpoints, and loopback addresses, with response data reflected in admission error messages enabling non-blind data exfiltration.
Technical POC Analysis
Evidence base: advisory GHSA-qr4g-8hrp-c4rw only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Kyverno admission controller versions before 1.18.0 contain a server-side request forgery vulnerability allowing any authenticated cluster user to steal cloud credentials and sensitive internal data by redirecting the controller's HTTP client to AWS metadata endpoints and internal services. The vulnerability is particularly dangerous because response data is reflected directly into Kubernetes error messages visible to the attacker, enabling complete credential exfiltration in a single API call from an authenticated insider.
Until vendor patch 1.18.0 is available: implement egress network policies denying outbound traffic from the admission controller namespace to 169.254.169.254, loopback addresses, and internal ClusterIP ranges; restrict RBAC permissions so only cluster administrators can create or modify ClusterPolicy resources; enable Kubernetes audit logging for apiCall.service.url configuration changes to detect exploitation attempts; consider disabling the apiCall feature entirely if not actively used.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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-69033
GHSA-xcg3-vhqm-f4qw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB