CVE-2026-122304: Kyverno 1.17.0 before 1.19.2 Privilege Escalation via CleanupPolicy Context Loader
Kyverno from 1.17.0 before 1.19.2 contains an authorization bypass vulnerability that allows namespace admins to escape namespace confinement because the cleanup controller builds its context loader with a nil policy. Attackers can create a namespaced CleanupPolicy with apiCall or globalReference context entries to read cross-namespace Secrets and modify validatingwebhookconfigurations using the cleanup controller's ServiceAccount.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Kyvernoto a version that resolves this vulnerability.Fixed in 1.19.2
Event History
Frequently Asked Questions
Who can exploit this issue?
A namespace administrator who can create a namespaced CleanupPolicy can exploit the authorization bypass. The attack does not require user interaction and can be performed over the network.
What access can an attacker gain through exploitation?
An attacker can use apiCall or globalReference context entries to read Secrets in other namespaces. They can also modify ValidatingWebhookConfigurations through the cleanup controller's ServiceAccount, escaping normal namespace confinement.
Are default Kyverno installations affected?
The provided information identifies affected Kyverno versions from 1.17.0 before 1.19.2, but does not state whether CleanupPolicy creation permissions or the cleanup controller's relevant ServiceAccount permissions are enabled by default.
How can I determine whether my environment is exposed?
Check whether Kyverno is running a version from 1.17.0 before 1.19.2 and whether namespace administrators can create namespaced CleanupPolicy resources. Also review existing CleanupPolicies for apiCall or globalReference context entries, especially ones that reference Secrets or cluster-scoped webhook configuration resources.