CVE-2026-100703: Kyverno before 1.19.1 Cross-Namespace Data Access via globalcontext.Lib
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Kyvernoto a version that resolves this vulnerability.Fixed in 1.19.1
Event History
Frequently Asked Questions
Who can exploit this issue?
A tenant who can create a namespaced Kyverno policy in their own namespace can exploit it. Affected policy types include NamespacedValidatingPolicy and the namespaced mutating, deleting, generating, and image-validating policy kinds.
Does Kubernetes RBAC prevent the disclosed data access?
No. A policy can call globalContext.get("<entry>", "") and receive cached data from a cluster-scoped GlobalContextEntry, including data from namespaces the tenant cannot read through RBAC.
What data is exposed through exploitation?
The attacker can receive the full cached contents of a cluster-scoped GlobalContextEntry. The disclosure is limited to data present in the GlobalContextEntry cache.
Which Kyverno versions need remediation?
Kyverno versions 1.16.0 through 1.19.0 are affected. The issue is fixed in version 1.19.1.