Skip to main content

Kyverno CVE-2026-84196

| EUVDEUVD-2026-69033 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-01 VulnCheck GHSA-xcg3-vhqm-f4qw
8.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate to Kubernetes cluster with standard user credential
  2. Delivery
    Identify ClusterPolicy using variable-interpolated apiCall.service.url
  3. Exploit
    Craft resource manifest embedding malicious internal URL in controllable annotation
  4. Install
    Submit resource via kubectl apply
  5. C2
    Admission controller issues HTTP request to attacker-specified internal endpoint
  6. Execute
    Non-JSON or error response body reflected in admission error message
  7. Impact
    Read 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 apiCall.service.url with JMESPath variable substitution drawing from attacker-controllable resource fields - specifically annotations, labels, or spec fields the attacker can populate; and (3) the Kyverno admission controller pod has network-level reachability to the intended target (cloud metadata endpoint, internal ClusterIP service, or loopback). Clusters that have no ClusterPolicies using variable-interpolated apiCall.service.url are not exploitable through this path regardless of user privilege level. Exploitation is bounded to confidentiality impact - no write capability to internal services is gained unless a targeted service exposes unsafe state-changing GET endpoints. Redirect chains of up to 10 hops are followed without re-validation, expanding the reachable target set beyond directly addressable hosts.

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 apiCall.service.url must exist - clusters without such policies are unexploitable through this path. No EPSS data was provided in the input, so exploitation probability cannot be quantified; however, the published PoC substantially lowers the required attacker skill. The vulnerability is not listed in CISA KEV, suggesting no confirmed widespread exploitation at time of analysis, though the combination of a clear PoC, a well-understood technique, and high-value targets (cloud IAM credentials) represents a meaningful near-term risk for any cloud-hosted Kubernetes environment running affected Kyverno versions with relevant ClusterPolicies.

Exploit ScenarioDerived

An attacker with a standard Kubernetes user account submits a Pod with the annotation target: '169.254.169.254/latest/meta-data/iam/security-credentials/' to a cluster where a ClusterPolicy uses apiCall.service.url: 'http://{{ request.object.metadata.annotations.target }}'; the admission controller fetches the AWS IMDS URL from its privileged network position and, because the response body is not valid JSON, propagates the raw IAM credential JSON in the admission error message returned to the kubectl client. A fully functional proof-of-concept demonstrating this exact flow is published in GHSA-qr4g-8hrp-c4rw, requiring no specialized tooling beyond kubectl and a valid cluster credential.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

kyverno 0 <1.18.0

Affected Packages

go github.com/kyverno/kyverno no fix
euvd kyverno fix: 1.18.0

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

Vendor (VulnCheck) PRIMARY 8.3 HIGH
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
vuln.today AI 7.7 HIGH

Network-exploitable by any authenticated Kubernetes user; scope changes because SSRF reaches internal systems beyond Kyverno; no integrity or availability impact applies.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
SUSE HIGH
Red Hat 7.7 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 01, 2026 - 13:01 EUVD
CVE Published
Sep 01, 2026 - 11:33 cve.org
HIGH 8.3

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular Kubernetes policy engine, not universally deployed across all clusters
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2026-22039 CRITICAL POC
9.9 Jan 27

Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass

CVE-2026-54523 CRITICAL POC
9.6 Aug 26

Cross-namespace privilege escalation in Kyverno 1.18.0-1.18.1 lets any tenant who can create a NamespacedMutatingPolicy

CVE-2024-48921 HIGH POC
8.7 Oct 29

Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.7), this vulnerability is remotely explo

CVE-2025-46342 HIGH POC
8.5 Apr 30

Kyverno is a policy engine designed for cloud native platform engineering teams. Rated high severity (CVSS 8.5), this vu

CVE-2026-23881 HIGH POC
7.7 Jan 27

Kyverno versions up to 1.16.3 is affected by allocation of resources without limits or throttling (CVSS 7.7).

CVE-2025-29778 MEDIUM POC
5.8 Mar 24

Kyverno is a policy engine designed for cloud native platform engineering teams. Rated medium severity (CVSS 5.8), this

CVE-2026-4789 CRITICAL
9.8 Mar 30

Kyverno versions 1.16.0 and later contain a server-side request forgery vulnerability in unrestricted CEL HTTP functions

CVE-2026-100706 CRITICAL
9.4 Sep 26

Privilege escalation in Kyverno before 1.19.1 allows an authenticated Kubernetes namespace tenant with Policy/apiCall au

CVE-2026-84200 CRITICAL
9.4 Sep 01

Policy enforcement bypass in Kyverno v1.9.0 through v1.12.7 lets an authenticated Kubernetes user evade an enforce-mode

CVE-2023-33191 HIGH
8.8 May 30

Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.8), this vulnerability is remotely explo

CVE-2026-100707 HIGH
8.3 Sep 26

Cross-namespace information disclosure in Kyverno before 1.19.1 allows an authenticated low-privilege tenant to read res

CVE-2026-84195 HIGH
8.3 Sep 01

Credential leakage in Kyverno's apiCall service mode automatically forwards the Kubernetes admission controller's Servic

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy