CVE-2025-47281 Kyverno's Improper JMESPath Variable Evaluation Leads to Denial of Service
Attackers with policy creation permissions can crash Kyverno admission and report controllers by crafting invalid JMESPath expressions, causing a denial of service.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-47281?
CVE-2025-47281 is a high-severity denial of service vulnerability in kyverno, published on 23 Jul 2025. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Kyverno is a policy engine designed for cloud native platform engineering teams. In versions 1.14.1 and below, a Denial of Service (DoS) vulnerability exists due to improper handling of JMESPath variable substitutions. Attackers with permissions to create or update Kyverno policies can craft expressions using the {{@}} variable combined with a pipe and an invalid JMESPath function (e.g., {{@ | non_existent_function }}). This leads to a nil value being substituted into the policy structure. Subsequent processing by internal functions, specifically getValueAsStringMap, which expect string values, results in a panic due to a type assertion failure (interface {} is nil, not string). This crashes Kyverno worker threads in the admission controller and causes continuous crashes of the reports controller pod. This is fixed in version 1.14.2.
Which versions are affected by CVE-2025-47281?
4 open source packages ship an affected version, including github.com/kyverno/kyverno and kyverno. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
github.com/kyverno/kyverno Go | All versions | 1.14.2 |
github.com/kyverno/kyverno Go | All versions | 1.14.2 |
github.com/kyverno/kyverno Go | All versions | 1.14.2 |
kyverno Bitnami | All versions | 1.14.2 |
Products include Kyverno Kyverno.
How do I fix CVE-2025-47281?
Upgrade github.com/kyverno/kyverno to 1.14.2 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2025-47281 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-47281 exists.
Other vulnerabilities in kyverno
- CVE-2026-22039 Kyverno Cross-Namespace Privilege Escalation via Policy apiCall
- CVE-2026-4789 CVE-2026-4789
- CVE-2025-46342 Kyverno vulnerable to bypass of policy rules that use namespace selectors in match statements
- CVE-2026-41323 Kyverno: ServiceAccount token leaked to external servers via apiCall service URL
- CVE-2026-40868 kyverno apicall servicecall implicit bearer token injection leaks kyverno serviceaccount token
Sources
Also known as BIT-kyverno-2025-47281, CLEANSTART-2026-JI50806, CLEANSTART-2026-OT05000, GHSA-r5p3-955p-5ggq, GO-2025-3823, MINI-4j32-w427-fhgg and 6 more.