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.1

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​