CVE-2025-47281 json
Kyverno's Improper JMESPath Variable Evaluation Leads to Denial of Service
published 2025-07-22 15 mo ago modified 2026-09-10 1 mo ago also BIT-kyverno-2025-47281 , EUVD-2025-22470 , GHSA-r5p3-955p-5ggq , GO-2025-3823
- cvss
- 7.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 46%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- go github.com/kyverno/kyverno 1.14.2
- bitnami kyverno 1.14.2
- kyverno kyverno 1.14.2
- nirmata kyverno 1.14.2
- govulncheck-vulndb openSUSE Tumbleweed 0.0.20250730T213748-1.1
opensuse advisories openSUSE-SU-2025:15405-1
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 15 mo ago
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 46% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/kyverno/kyverno/security/advisories/GHSA-r5p3-955p-5ggq referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H |
| GitHub | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H |
| OSV | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/kyverno/kyverno | <1.14.2 |
1.14.2 |
| bitnami | kyverno | <1.14.2 |
1.14.2 |
Affected products
- kyverno kyverno
Classification
References
-
github.com
/kyverno/kyverno/commit/cbd7d4ca24de1c55396fc3295e9fc3215832be7c
web, patch
-
github.com
/kyverno/kyverno/security/advisories/GHSA-r5p3-955p-5ggq
exploit, web, mitigation, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2025-47281
advisory, web
-
github.com
/kyverno/kyverno
package
Sources
- CVE List CVE-2025-47281
- GitHub Advisory GHSA-r5p3-955p-5ggq
- NVD CVE-2025-47281
- OSV BIT-kyverno-2025-47281
- OSV GO-2025-3823
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.