Advisory · CVE-2026-122310
Kyverno apiCall urlPath check can be slipped past with a fragment or query
Kyverno 1.19.1 before 1.19.2 validates a Policy context.apiCall urlPath after cleaning it but executes the raw path, so a namespace user can hide traversal segments behind # or ? and reach cluster-scoped endpoints with Kyverno's ServiceAccount. Kyverno rates it CVSS 3.1 9.9.
- Vendor
- Kyverno
- Product
- Kyverno
- Identifier / CWE
- CVE-2026-122310
CWE-436 - Action timing
- Immediate
Explain it like I’m five
Kyverno proofreads a cleaned-up copy of an address but then visits the original messy one. An attacker hides the dangerous part behind a # or ?, and the check never sees it.
- 01Policy with apiCall context
A namespace-scoped user creates a Policy whose context.apiCall carries a crafted urlPath.
- 02Validation sees the cleaned path
The urlPath is validated after cleaning, so the fragment or query hides the traversal segments.
- 03Raw path is executed
The Kubernetes client discards the fragment or query and requests the raw path, reaching a cluster-scoped endpoint.
- 04Cluster admin reached
The request runs with Kyverno's ServiceAccount, giving the attacker cluster admin.
What happened
Kyverno disclosed CVE-2026-122310 for Kyverno 1.19.1 before 1.19.2. A Policy’s context.apiCall urlPath is validated after cleaning but the raw path is executed, and the Kubernetes client discards any fragment or query. A namespace-scoped user who can create a Policy can hide ../ segments behind # or ? to reach cluster-scoped endpoints with Kyverno’s ServiceAccount, gaining cluster admin.
The advisory rates it critical at CVSS 3.1 9.9 and identifies Kyverno 1.19.2 as the fixed release.
What to do
- Inventory Kyverno installations and confirm the deployed version.
- Upgrade affected installations to Kyverno 1.19.2 or later using the project release guidance.
- While remediation is underway, limit who can create Policies with context.apiCall entries.
- Review Kubernetes audit logs for apiCall urlPath values containing # or ? and for cluster-scoped API calls from Kyverno’s ServiceAccount.
- Look for unexpected cluster-scoped changes made through the Kyverno ServiceAccount and revert them.
Management note
Validating one string and executing another is a classic check-versus-use gap, and here the gap leads straight to cluster admin. This one deserves the top of the patch queue.