Skip to main content
HIGH7.7CVE-2026-41068GHSA-cvq5-hhx3-f99p
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Affected projects
kyverno
Disclosed
Last updated

Affected versions

ProjectVulnerable range
github.com/kyverno/kyverno<= 1.17.0

Patched versions

ProjectFixed in
github.com/kyverno/kyverno1.17.2

References

Summary

CVE-2026-22039 fixed cross-namespace privilege escalation in Kyverno's apiCall context by validating the URLPath field. However, the ConfigMap context loader has the identical vulnerability — the configMap.namespace field accepts any namespace with zero validation, allowing a namespace admin to read ConfigMaps from any namespace using Kyverno's privileged service account. This is a complete RBAC bypass in multi-tenant Kubernetes clusters.

Impact

CVE-2026-22039 (fixed)This vulnerability
LocationapiCall.URLPath fieldconfigMap.namespace field
ValidationNamespace regex checkNone

The exploit chain:

  1. Namespace admin creates a Kyverno Policy in their namespace using standard RBAC.
  2. Policy uses context.configMap.namespace: "victim-ns" to reference another namespace.
  3. Kyverno's admission controller SA (which has cluster-wide view rights) fetches the ConfigMap.
  4. The policy mutates a trigger ConfigMap to exfiltrate the stolen data via annotations.

In multi-tenant clusters where namespace boundaries are the security perimeter, this trivially defeats that perimeter for every ConfigMap in the cluster.

Detection

Audit Policy and ClusterPolicy resources whose context block uses configMap.namespace referencing a namespace other than the policy's own. Anything outside the same-namespace pattern is the affected primitive.

Pair with audit-log review for unexpected get/list actions on ConfigMaps in sensitive namespaces (kube-system, namespaces hosting tenant-private workloads) issued by the Kyverno admission controller's SA.

Mitigation

Upgrade Kyverno to v1.17.2 or later. v1.17.2 also includes the patch for the related apiCall confused-deputy issue (CVE-2026-41323, CVE-2026-40868) — upgrade once, mitigate three.

Workarounds until patched:

  • Restrict who can create or update Kyverno Policy resources via tight RBAC, especially in shared / multi-tenant clusters.
  • Audit existing policies for cross-namespace configMap.namespace references and remove them.
  • Where feasible, prefer CEL-based policies that do not rely on the affected context loaders.

References