Skip to main content

Kubewarden Policy Engine CVE-2026-42541

MEDIUM
Missing Authorization (CWE-862)
2026-05-05 https://github.com/kubewarden/kubewarden-controller GHSA-wqcw-g35j-j578
4.3
CVSS 3.1 · Vendor: https://github.com/kubewarden/kubewarden-controller
View

Attack ChainAIDerived

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

  1. Access
    Grant AdmissionPolicy creation permission
  2. Delivery
    Deploy malicious policy with can_i call
  3. Exploit
    Policy-server executes SAR as elevated ServiceAccount
  4. Execution
    Enumerate target subject permissions
  5. Persist
    Identify high-value targets (secrets, pods)
  6. Impact
    Plan lateral movement

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

Exploitation requires two preconditions: (1) Cluster operator has explicitly granted a user or service account permission to create AdmissionPolicy or AdmissionPolicyGroup resources in one or more namespaces (this is non-default); (2) The cluster runs Kubewarden version earlier than 1.35.0. Additionally, if the PolicyServer ServiceAccount lacks broad Kubernetes RBAC permissions, the enumeration scope is limited to subjects and actions within the PolicyServer's own RBAC permissions-the vulnerability does not grant new RBAC permissions but exposes existing ones. The can_i callback requires network access to the Kubernetes API from within the policy-server pod (standard in Kubernetes). No user interaction is needed; the malicious policy executes automatically during admission control. The vulnerability is exploitation-ready once a policy is deployed; no special Kubernetes feature flags or non-default configurations are required beyond the initial grant of policy creation permissions.

Impact

The CVSS v3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) reflects a low-severity information disclosure with network accessibility but requiring low privileges. EPSS data is not provided; however, the risk assessment aligns with the CVSS rating: this is a reconnaissance vulnerability with confidentiality impact only. The attack requires prior privilege grant (AdmissionPolicy/AdmissionPolicyGroup creation permissions), which is non-default, reducing the immediate threat surface. No CISA KEV status or public exploit code is indicated in the data. The real-world risk depends critically on deployment posture-organizations granting unprivileged users policy creation rights without the v1.35.0 mitigation (PolicyServer capability restrictions) face reconnaissance-level exposure. Unlike direct privilege escalation or data exfiltration vulnerabilities, this enables attackers to probe RBAC configurations to identify high-value service accounts (e.g., those with 'get secrets' or 'create pods' permissions), informing follow-up exploitation. The low CVSS score understates organizational risk if attacker reconnaissance directly leads to further lateral movement; however, the vulnerability itself does not grant unauthorized actions, only visibility into existing permissions.

Exploit ScenarioDerived

A cluster operator grants namespace developers permission to create AdmissionPolicies in their namespace to enforce custom validation rules. An attacker with that role crafts a malicious policy containing a can_i call querying whether the 'default' ServiceAccount can 'get secrets' in all namespaces. The policy-server evaluates this call using its own elevated ServiceAccount (e.g., kubewarden-policy-server), which has broad RBAC permissions, and returns permission results without authorization checks. The attacker learns which namespaces expose secret access, then exploits a separate vulnerability (e.g., lateral movement via a compromised pod) to access those secrets.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 05, 2026

Kubewarden versions before 1.35.0 permit RBAC reconnaissance attacks when users with AdmissionPolicy or AdmissionPolicyGroup creation privileges craft policies using the unchecked can_i host capability. The vulnerability allows enumeration of any user or service account permissions across the cluster via SubjectAccessReview requests executed with policy-server privileges, despite the absence of context-aware resource grants. This information disclosure enables attackers to discover sensitive permission configurations without requiring cluster-wide policy creation rights, a capability not available by default but exploitable when granted.

RemediationAI

Vendor-released patch: Upgrade to Kubewarden v1.35.0 or later. Additionally, cluster operators must implement host capability restrictions on PolicyServers to enforce the new security model. For custom PolicyServers, add spec.namespacedPoliciesCapabilities: [] (empty list) to deny all host capabilities to namespaced policies, or specify a whitelist of permitted capabilities (e.g., ["oci/v1/verify", "net/v1/dns_lookup_host"]). For the default PolicyServer, set .Values.policyServer.namespacedPoliciesCapabilities: [] via Helm values. If namespaced policies legitimately require certain host capabilities, apply the new ns-policyserver-mapper policy or GitOps-based scheduling to route namespaced policies to PolicyServers with appropriate capability grants, keeping capability-restricted PolicyServers isolated from policies that need them. Alternatively, as a pre-patch workaround, cluster operators can remove SubjectAccessReview 'create' permissions from the PolicyServer ServiceAccount RBAC in both custom and default PolicyServers; this blocks SAR execution but does not address the authorization gap in the code. For deployments where policy creation cannot yet be restricted, the workaround reduces exposure from unbounded RBAC enumeration to only the specific subset of subjects the PolicyServer can query via its own RBAC. See patch references: https://github.com/kubewarden/kubewarden-controller/pull/1693 (code fix with capability enforcement logic) and https://github.com/kubewarden/docs/pull/737 (configuration guidance). Documentation: https://docs.kubewarden.io/howtos/policy-servers/namespaced-policies-capabilities

Affected Packages

go github.com/kubewarden/kubewarden-controller fix: 1.35.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in go

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

Technical ContextAI · show details

Kubewarden is a Kubernetes policy engine that permits namespace-scoped AdmissionPolicy and AdmissionPolicyGroup resources to be deployed by unprivileged users. The engine enforces authorization checks on three host capability operations-list_resources_by_namespace, list_resources_all, and get_resource-through a can_access_kubernetes_resource() context-aware allow-list mechanism. However, the can_i host capability for SubjectAccessReview queries bypasses this authorization gate, directly forwarding requests to the policy-server callback handler which executes as the PolicyServer ServiceAccount. This allows a malicious namespaced policy to invoke Kubernetes SubjectAccessReview (SAR) operations with the policy-server's RBAC privileges, querying permissions for arbitrary subjects. The root cause is CWE-862 (Missing Authorization), where the can_i operation lacks the same context-aware enforcement applied to resource access operations. The affected component is the kubewarden-controller, distributed as pkg:go/github.com/kubewarden/kubewarden-controller.

Know when Kubernetes 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 (https://github.com/kubewarden/kubewarden-controller) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
SUSE MEDIUM

Primary rating from Vendor (https://github.com/kubewarden/kubewarden-controller).

CVSS VectorVendor: https://github.com/kubewarden/kubewarden-controller

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

DescriptionCVE.org

Impact

Kubewarden is a policy engine for Kubernetes. Kubewarden cluster operators can grant permissions to users to deploy namespaced AdmissionPolicies and AdmissionPolicyGroups in their Namespaces. One of Kubewarden promises is that configured users can deploy namespaced policies in a safe manner, without privilege escalation.

An attacker with privileged AdmissionPolicy or AdmissionPolicyGroup create permissions (which isn't the default) can craft a policy that makes use of the can_i host callback. The callback issues a SubjectAccessReview (SAR) requests to enumerate RBAC permissions of any user or service account across the cluster. Three operations on the host capabilities kubewarden/kubernetes binding enforce the context-aware allow-list via can_access_kubernetes_resource():

  • list_resources_by_namespace
  • list_resources_all
  • get_resource

However, can_i does not perform that check and forwards the request directly to the callback handler, which executes a real SubjectAccessReview using policy-server privileges. This creates a policy-level authorization gap: can_i is effectively usable even when the policy has no context-aware resource grant.

This is an information disclosure / reconnaissance issue, and not direct workload data exfiltration. The attacker learns permission information, such as whether specific service accounts can "get secrets", "create pods", or "bind clusterroles" in chosen namespaces.

Patches

Cluster Operators, if providing their users with privileges to deploy AdmissionPolicies or AdmissionPolicygroups (which isn't the default), must then also deploy PolicyServers with reduced permissions for host capability calls. This includes the PolicyServer default. For that, make use of the new feature in v1.35:

  • For custom PolicyServers: Set the new PolicyServer.spec.namespacedPoliciesCapabilities , for example to an empty list [] which doesn't allow any capability.
  • For the default PolicyServer, set the .Values.policyServer.namespacedPoliciesCapabilities , for example to an empty list [] which doesn't allow any capability.

Also, if needed, they must ensure that those namespaced AdmissionPolicies or AdmissionPolicygroups are scheduled in the PolicyServers with reduced permissions. For that, they could make use of the new ns-policyserver-mapper policy, their own policy or other means, such as GitOps.

See: https://docs.kubewarden.io/howtos/policy-servers/namespaced-policies-capabilities

Workarounds

Cluster Operators can opt for:

  • Not allowing users to create namespaced policies (AdmissionPolicies, AdmissionPolicyGroups).
  • Removing SubjectAccessReview "create" permissions for the PolicyServer ServiceAccount RBAC being used, in custom PolicyServers and the PolicyServer default.

Resources

  • Code changes, with new security feature: https://github.com/kubewarden/kubewarden-controller/pull/1693
  • Documentation changes: https://github.com/kubewarden/docs/pull/737
  • Explained new feature on 1.35.0
  • Updated Threat model assessment

Threat Intelligence Overview

EPSS Score
0.0%
Top 94% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

pkg:go/github.com_kubewarden_kubewarden-controller
CVE-2025-1974 CRITICAL POC
9.8 Mar 25

A critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2025-1098 HIGH POC
8.8 Mar 25

Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress

CVE-2025-24514 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres

CVE-2025-1097 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c

CVE-2020-8554 MEDIUM POC
6.3 Jan 21

Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter

CVE-2023-3676 HIGH POC
8.8 Oct 31

A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate

CVE-2025-55190 CRITICAL POC
9.9 Sep 04

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne

CVE-2026-34976 CRITICAL POC
10.0 Apr 02

Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai

CVE-2018-18843 CRITICAL POC
10.0 Dec 04

The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4

CVE-2026-54680 CRITICAL POC
9.9 Jul 29

Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can

CVE-2025-64709 CRITICAL POC
9.9 Nov 13

Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

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