Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain tenant RBAC to create namespaced policy
-
DeliveryAuthor policy with globalContext.get() CEL call
-
ExploitKyverno resolves unconfined GlobalContextEntry
-
ExecutionCross-namespace cached data returned
-
ImpactExfiltrate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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-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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 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
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.
Apply vendor patch.
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-87676
GHSA-cmr3-jwxg-m6m3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB