Skip to main content

Kyverno EUVDEUVD-2026-87676

| CVE-2026-100703 HIGH
Information Exposure (CWE-200)
2026-09-26 VulnCheck GHSA-cmr3-jwxg-m6m3
8.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain tenant RBAC to create namespaced policy
  2. Delivery
    Author policy with globalContext.get() CEL call
  3. Exploit
    Kyverno resolves unconfined GlobalContextEntry
  4. Execution
    Cross-namespace cached data returned
  5. Impact
    Exfiltrate secrets/config beyond tenant RBAC

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

Requires a multi-tenant Kubernetes cluster running Kyverno 1.16.0-1.19.0 where the attacker holds RBAC permission to create a namespaced policy object (NamespacedValidatingPolicy, or the namespaced mutating, deleting, generating, or image-validating policy kinds) in a namespace they control. A cluster-scoped GlobalContextEntry must exist and cache data from namespaces the tenant cannot read via RBAC - that cached data is the disclosed asset; with no GlobalContextEntry configured there is nothing to leak. No user interaction and no admission-time validation stands in the way, but the flaw is inert on single-tenant clusters or clusters that do not use GlobalContextEntry.

Impact

This is a genuine multi-tenant confidentiality boundary breach, not a high-CVSS-but-low-real-risk issue, though its blast radius is bounded by preconditions. 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) is internally consistent with the description: network-reachable Kubernetes API, low complexity, low privilege (a tenant able to create namespaced policies), no user interaction, high confidentiality impact to the vulnerable system and - importantly - high subsequent-system confidentiality impact (SC:H) reflecting that data belonging to OTHER namespaces/tenants is exposed. There is a mild internal tension in that VC:H and SC:H both being High may double-count a single read primitive, but it correctly captures a scope/authorization-boundary crossing. No EPSS score, no CISA KEV listing, and no public exploit code are provided, so exploitation status is 'no public exploit identified at time of analysis' - the risk is derived from the mechanism (a trivially-invoked CEL call once a policy can be authored) rather than observed attacks. The realism of exploitation depends entirely on two deployment facts not guaranteed by the CVE: that the cluster is multi-tenant with delegated namespaced-policy creation, and that a cluster-scoped GlobalContextEntry actually caches sensitive cross-namespace data. Where both hold, this is a real priority for cluster operators; where the cluster is single-tenant or does not use GlobalContextEntry, real risk is low.

Exploit ScenarioDerived

In a multi-tenant Kubernetes cluster, a tenant granted RBAC to create namespaced Kyverno policies (e.g. NamespacedValidatingPolicy) in their own namespace authors a policy whose CEL expression calls globalContext.get("<entry>", ""). Because globalcontext.Lib is registered without namespace confinement, the call returns the full cached contents of a cluster-scoped GlobalContextEntry - including data cached from namespaces the tenant has no RBAC permission to read - with no admission control rejecting the request. No public exploit code is identified, but the technique requires only writing a valid policy manifest, so exploitation complexity is low.

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

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

Alert me

AnalysisAIv1 – Sep 26, 2026

Cross-namespace information disclosure in Kyverno 1.16.0 through 1.19.0 lets an authenticated tenant with RBAC permission to create namespaced policy objects read the full cached contents of cluster-scoped GlobalContextEntry resources - including data from namespaces they have no RBAC access to - by invoking globalContext.get() in a CEL policy. The root cause is that the globalcontext.Lib CEL library is registered in the policy environment without the namespace confinement applied to its sibling libraries (resource.Lib, http.Lib, configMap loader), and no admission validation blocks the call. Exploitation requires a multi-tenant cluster with a GlobalContextEntry configured and caching data the tenant cannot otherwise read, so the blast radius is bounded by those preconditions and the flaw is inert on single-tenant clusters or clusters with no GlobalContextEntry; no public exploit identified at time of analysis, and the issue is fixed in Kyverno 1.19.1.

RemediationAI

Upgrade to Kyverno 1.19.1, which is the vendor-released patch for this issue per GHSA-59v6-2x73-wfg4; the fix confines globalcontext.Lib to the policy's namespace like its sibling libraries. If an immediate upgrade is not possible, the most effective compensating control is RBAC - restrict creation of namespaced policy objects (NamespacedValidatingPolicy and the namespaced mutating, deleting, generating, and image-validating kinds) to trusted cluster administrators only, with the trade-off that this removes legitimate tenant self-service policy authoring and may disrupt existing tenant workflows. A second option is to audit and minimize cluster-scoped GlobalContextEntry definitions so they do not cache data from namespaces tenants are not permitted to read; this reduces the value of the leak but does not close the vulnerability and requires ongoing governance of GlobalContextEntry contents. An admission policy such as a ValidatingAdmissionPolicy or webhook can deny creation of namespaced policy resources by non-admin subjects, though it must be scoped carefully to avoid blocking Kyverno's own operations. Finally, review API server audit logs for namespaced policy creations that invoke globalContext.get(), and note that on single-tenant clusters or clusters with no GlobalContextEntry configured the flaw is inert. No vendor-released patch other than 1.19.1 is identified in the provided data.

Affected VersionsENISA

kyverno 1.16.0 <1.19.1

Affected Packages

euvd kyverno fix: 1.19.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in 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 evaluates policies written in CEL (Common Expression Language). Each policy's CEL environment is populated with extension libraries - resource.Lib, http.Lib, and a ConfigMap loader - all of which are scoped to the policy's own namespace so a tenant-authored policy can only reach resources in that tenant's namespace. GlobalContextEntry is a cluster-scoped Kyverno custom resource that periodically fetches and caches data from cluster resources; its cache is shared cluster-wide rather than partitioned per namespace, meaning it can hold data pulled from many namespaces. In Kyverno 1.16.0 through 1.19.0 the globalcontext.Lib library, which exposes the globalContext.get() function, was registered into policy CEL environments without the namespace confinement applied to its sibling libraries. Consequently a namespaced policy - NamespacedValidatingPolicy, or the namespaced mutating, deleting, generating, and image-validating policy kinds - created by a tenant in a namespace it controls can call globalContext.get("<entry>", "") and receive the entire cached content of any cluster-scoped GlobalContextEntry, including entries populated from namespaces the tenant cannot read via RBAC. No admission-time validation rejects such calls. The weakness class is CWE-200 (Exposure of Sensitive Information): a missing authorization/namespace-scoping check on a CEL library registration rather than a memory-safety or injection flaw, and the assessed impact is confidentiality-only (C:H, I:N, A:N, S:C) on the CVSS:3.1 vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N.

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-reachable API, low complexity, low-privilege tenant with policy-create rights (PR:L); scope changes (S:C) since data of other namespaces/tenants is exposed; confidentiality-only, so I:N/A:N.

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

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 26, 2026 - 14:02 EUVD
CVE Published
Sep 26, 2026 - 13:23 cve.org
HIGH 8.3

DescriptionCVE.org

Kyverno 1.16.0 through 1.19.0 registers the globalcontext.Lib CEL library in its policy environment without confining it to the policy's namespace, unlike the sibling libraries (resource.Lib, http.Lib, configMap loader) which are handed the policy namespace. A tenant who can create a namespaced policy (e.g. NamespacedValidatingPolicy, and likewise the namespaced mutating, deleting, generating, and image-validating policy kinds) in their own namespace can call globalContext.get("<entry>", "") and receive the full cached contents of a cluster-scoped GlobalContextEntry, including data cached from namespaces the tenant has no RBAC permission to read. No admission validation rejects such calls. Fixed in 1.19.1.

Technical POC Analysis

Note: the supplied advisory records "No known CVE" and CVSS 7.7 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N).

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 releases 1.16.0 through 1.19.0 allow users who can create namespaced policy objects to read cached cluster-scoped GlobalContextEntry data, including data from namespaces they are not entitled to see. The exposure is confined to multi-tenant clusters that have GlobalContextEntry configured with cached data; single-tenant clusters and clusters without GlobalContextEntry are unaffected, and no public exploit identified at time of analysis. Leadership should care because any platform team relying on Kyverno to enforce tenant isolation may have a cross-tenant confidentiality gap that undermines contractual, regulatory, and internal segmentation commitments.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
CNCF Kubernetes policy engine, common in enterprise clusters but not universal
Data Quality
6 sources
Confidence: High

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.2%
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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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