Skip to main content

Kyverno CVE-2026-54523

| EUVDEUVD-2026-66561 CRITICAL
Missing Authorization (CWE-862)
2026-08-26 GitHub_M GHSA-79gf-7frw-68m9
9.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain tenant create rights on namespacedmutatingpolicies
  2. Delivery
    Author NamespacedMutatingPolicy with generator.apply targeting kube-system
  3. Exploit
    Admission controller evaluates matchConditions with cluster privileges
  4. Execution
    Controller creates attacker-defined RoleBinding/Secret cross-namespace
  5. Persist
    Bind elevated role to attacker identity
  6. Impact
    Escalate to cluster-wide control

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must be an authenticated Kubernetes user (PR:L) holding 'create' permission on namespacedmutatingpolicies.policies.kyverno.io within at least one namespace, and the cluster must run Kyverno 1.18.0 or 1.18.1 with the NamespacedMutatingPolicy (nmpol) feature reachable. The exploit specifically requires embedding generator.apply("<target-namespace>", [...]) inside a policy matchConditions expression; the target namespace is attacker-chosen and unvalidated. Limiting factors: exploitation is gated by tenant RBAC (a user with no rights to create these policy objects cannot exploit it), it only works on the narrow 1.18.0-1.18.1 version band (fixed in 1.18.2), and it depends on the admission controller running with its default cluster-wide privileges. No end-user interaction is needed, and the trigger fires when a matching admission request is processed.

Impact

This is a genuine high-priority issue for multi-tenant clusters, not merely a high-CVSS paper cut. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N, base 9.6) is well justified: the attack is over the Kubernetes API (AV:N), low complexity (AC:L), needs only tenant-level create rights on namespacedmutatingpolicies (PR:L), no user interaction, and crosses a trust boundary (S:C) by abusing the controller's cluster privileges to reach other namespaces with high confidentiality and integrity impact. Availability is untouched (A:N), consistent with the fact that the primitive creates/overwrites resources rather than destroying the cluster. A concrete PoC in the advisory raises real-world likelihood; however no EPSS score is provided, there is no CISA KEV listing, and no evidence of active exploitation, so exploitation risk is currently demonstrated-but-not-observed in the wild. The main limiter is prerequisite RBAC - the attacker must already be a legitimate tenant able to create these policy objects - so exposure is confined to clusters running the narrow vulnerable version band (1.18.0-1.18.1) with the nmpol feature reachable by tenants. One data nuance: the CVE description says 'from 1.18.0 until 1.18.2' while the vendor advisory scopes the practical vector to 1.18.0-1.18.1 (NamespacedGeneratingPolicy is not a functional vector in 1.18.1); treat 1.18.2 as the fixed release.

Exploit ScenarioDerived

A tenant with create rights on namespacedmutatingpolicies in tenant-ns submits a NamespacedMutatingPolicy whose matchConditions contain generator.apply("kube-system", [ ...RoleBinding/ConfigMap... ]); when any matching admission request is evaluated, the cluster-privileged admission controller creates the attacker-specified resources in kube-system. By generating a RoleBinding that grants their identity elevated permissions, the tenant escalates from a single namespace to cluster-wide control. A working proof-of-concept manifest is published in the GitHub advisory, lowering the bar to reproduce.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 26, 2026

Cross-namespace privilege escalation in Kyverno 1.18.0-1.18.1 lets any tenant who can create a NamespacedMutatingPolicy in their own namespace force the cluster-privileged admission controller to generate resources (ConfigMaps, Secrets, NetworkPolicies, RoleBindings) in arbitrary namespaces, including kube-system. The nmpol CEL compiler unintentionally exposes the generator library to matchConditions, and neither the mpol validator nor GenerateResources enforces namespace scope on the generator.apply() target. A working proof-of-concept is published in the vendor advisory (GHSA-79gf-7frw-68m9); there is no KEV listing or evidence of active exploitation, and the issue is fixed in 1.18.2.

RemediationAI

Upgrade to Kyverno v1.18.2, which threads the policy namespace into the generator CEL library and rejects any generator.apply() whose target namespace differs from the policy's own namespace, and additionally denies cluster-scoped generation from namespaced policies (Vendor-released patch: 1.18.2; see https://github.com/kyverno/kyverno/releases/tag/v1.18.2 and PR https://github.com/kyverno/kyverno/pull/16238, commits 0919553c0ea1904f8d891280c92018da97946a06 and 5164bcdeda5b57678bc2d7a03ecc2cbb02982dae). If you cannot upgrade immediately, remove or tightly restrict tenants' ability to create namespacedmutatingpolicies.policies.kyverno.io objects via RBAC (drop 'create' on that resource from tenant roles), which eliminates the attack vector at the cost of blocking tenants who legitimately author their own namespaced mutating policies; additionally audit for any NamespacedMutatingPolicy whose matchConditions reference generator.apply and inspect recently generated resources in sensitive namespaces such as kube-system for unexpected ConfigMaps, Secrets, or RoleBindings. Consider constraining the admission controller's RBAC to the minimum namespaces it must write to, recognizing this may break legitimate cross-namespace generate policies.

Affected VersionsENISA

kyverno 1.18.0, < 1.18.2

Affected Packages

go github.com/kyverno/kyverno fix: 1.18.2
euvd kyverno_1_18_0 fix: 1.18.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Kyverno is a Kubernetes-native policy engine that runs as an admission controller with broad, cluster-wide RBAC so it can mutate and generate resources across the cluster. The flaw is a missing-authorization defect (CWE-862): the CEL-based NamespacedMutatingPolicy (nmpol) compiler in pkg/cel/policies/mpol registers the 'kyverno.generator' library into matchConditions expressions, so a boolean match expression can invoke generator.apply(namespace, resources). The namespace argument reaches contextProvider.GenerateResources (pkg/cel/libs/context.go:177) completely unvalidated. Comparable code paths are guarded - pkg/engine/context/loaders/configmap.go rejects cross-namespace ConfigMap references and pkg/engine/apicall/apicall.go enforces namespace-segment matching - but the generator path had neither check, so a namespace-scoped policy could drive the controller's cluster identity to write into any namespace. The upstream fix threads the policy namespace into the generator Lib (kyverno/sdk) and adds a namespacedImpl that rejects any apply() whose target differs from the policy namespace, plus a server-side guard in GenerateResources that denies cluster-scoped generation for namespaced policies.

Know when Kyverno gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.6 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 9.6 CRITICAL

Exploited over the K8s API (AV:N/AC:L), needs only tenant create rights on the policy object (PR:L), no interaction, and abuses the controller's cluster identity across namespaces (S:C) with high C/I but no availability loss.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
SUSE CRITICAL
Red Hat 8.7 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 26, 2026 - 16:17 EUVD
CVE Published
Aug 26, 2026 - 14:20 cve.org
CRITICAL 9.6

DescriptionCVE.org

Kyverno is a policy engine designed for cloud native platform engineering teams. From 1.18.0 until 1.18.2, the NamespacedMutatingPolicy CEL compiler exposes the generator library to matchConditions, allowing a namespace-scoped policy to invoke generator.apply(namespace, resources) with an arbitrary target namespace. The validation in pkg/cel/policies/mpol/validate.go checks that the policy compiles but does not enforce namespace scope, and GenerateResources in pkg/cel/libs/context.go does not reject the cross-namespace target. A user who can create NamespacedMutatingPolicy objects in one namespace can cause the admission controller, operating with cluster-wide privileges, to create ConfigMaps, NetworkPolicies, Secrets, RoleBindings, and other resources in another namespace, enabling unauthorized modification and potential privilege escalation. This issue is fixed in version 1.18.2.

Executive ViewAI

Why It Matters

Kyverno policy engine versions 1.18.0 through 1.18.1 contain a critical privilege escalation vulnerability (CVSS 9.6) with publicly available exploit code that allows any cluster tenant to bypass namespace isolation and force creation of resources in protected system namespaces like kube-system. This enables cluster-wide compromise including credential theft and policy manipulation. Organizations running affected versions face immediate risk of unauthorized cluster access.

Business Impact: Severe
Compensating Controls

Apply vendor patch: Kyverno 1.18.2 or later.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Medium
popular cloud-native Kubernetes policy engine, but not in every cluster
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

68
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +48
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

CVE-2026-22039 CRITICAL POC
9.9 Jan 27

Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass

CVE-2024-48921 HIGH POC
8.7 Oct 29

Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.7), this vulnerability is remotely explo

CVE-2025-46342 HIGH POC
8.5 Apr 30

Kyverno is a policy engine designed for cloud native platform engineering teams. Rated high severity (CVSS 8.5), this vu

CVE-2026-23881 HIGH POC
7.7 Jan 27

Kyverno versions up to 1.16.3 is affected by allocation of resources without limits or throttling (CVSS 7.7).

CVE-2025-29778 MEDIUM POC
5.8 Mar 24

Kyverno is a policy engine designed for cloud native platform engineering teams. Rated medium severity (CVSS 5.8), this

CVE-2026-4789 CRITICAL
9.8 Mar 30

Kyverno versions 1.16.0 and later contain a server-side request forgery vulnerability in unrestricted CEL HTTP functions

CVE-2026-100706 CRITICAL
9.4 Sep 26

Privilege escalation in Kyverno before 1.19.1 allows an authenticated Kubernetes namespace tenant with Policy/apiCall au

CVE-2026-84200 CRITICAL
9.4 Sep 01

Policy enforcement bypass in Kyverno v1.9.0 through v1.12.7 lets an authenticated Kubernetes user evade an enforce-mode

CVE-2023-33191 HIGH
8.8 May 30

Kyverno is a policy engine designed for Kubernetes. Rated high severity (CVSS 8.8), this vulnerability is remotely explo

CVE-2026-100707 HIGH
8.3 Sep 26

Cross-namespace information disclosure in Kyverno before 1.19.1 allows an authenticated low-privilege tenant to read res

CVE-2026-84195 HIGH
8.3 Sep 01

Credential leakage in Kyverno's apiCall service mode automatically forwards the Kubernetes admission controller's Servic

CVE-2026-84196 HIGH
8.3 Sep 01

Server-side request forgery in Kyverno's Kubernetes admission controller (all versions before 1.18.0) enables any authen

Vendor StatusVendor

SUSE

Severity: Critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy