CVE-2024-22871 Clojure
| Affected software | Clojure |
|---|---|
| Severity | 7.5 High CVSS 3.1 |
| Fixed in | 1.11.2, 1.12.0-alpha9 |
| Weakness | Deserialization of untrusted data (CWE-502) |
| Published | 29 Feb 2024 |
| Updated | 13 Nov 2026 |
Description
An issue in Clojure versions 1.20 to 1.12.0-alpha5 allows an attacker to cause a denial of service (DoS) via the clojure.core$partial$fn__5920 function.
Exploitation status
Proof of concept only
A proof of concept exists, but no reviewed exploit catalogue lists this CVE.
Exploitation status
- CISA KEV not listed
- VulnCheck KEV not listed
- CISA Vulnrichment exploitation: poc CISA recorded that an exploit has been demonstrated. Automatable: yes, technical impact: partial.
- Indexed PoC none indexed
- EPSS 1.5% chance in 30 days
Waratek protection
A kind of vulnerability Waratek's rules address, with exploit code published or exploitation reported. No rule exists and none is planned yet. The decision below says what we found to build a rule from.
- Protection none
- Action feasible
- Review human Researcher
- Record active
| Decided by | A researcher's recorded decision for this specific CVE |
|---|---|
| Finding | A researcher set this CVE's status to Mitigation candidate. |
Waratek research note
written 2026-11-13Written by a Waratek engineer who reviewed this CVE. Their decision sets the status above, ahead of every automated rule except a withdrawal.
Comments
Deserialization DoS: ASeq.hashCode() walks an infinite Cycle/Iterate/Repeat seq while HashMap.readObject() rehashes keys, hanging the thread. The impact is availability-only (C:N/I:N/A:H) with no gadget chain and no exec sink, so the Marshal RCE pair does not apply, and the payload is far too small to trip the DoS rule's stream-size heuristic. Upstream fix is a three-class hashCode()/hasheq() override.
Affected software and releases
Maven packages
Affected and fixed versions, from OSV.dev| Package | Introduced | Fixed | Last affected |
|---|---|---|---|
org.clojure:clojure |
1.7.0 | 1.11.2 |
unbounded |
org.clojure:clojure |
1.12.0-alpha1 | 1.12.0-alpha9 |
unbounded |
Products and versions
3 products, 14 version entries| Source | Vendor | Product | Scheme | Affected versions |
|---|---|---|---|---|
| nvd | clojure | clojure | generic | ≥ 1.2.0 and < 1.11.2 · 1.12.0:alpha1 · 1.12.0:alpha2 · 1.12.0:alpha3 · 1.12.0:alpha4 · 1.12.0:alpha5 · 1.12.0:alpha6 · 1.12.0:alpha7 · 1.12.0:alpha8 |
| nvd | fedoraproject | fedora | generic | 38 · 39 · 40 |
| osv | org.clojure | clojure | generic | ≥ 1.7.0 and < 1.11.2 · ≥ 1.12.0 and < 1.12.0 |
References
Timeline
Timeline
| Published | 2024-02-29 | By the CVE Program. |
|---|---|---|
| NVD record modified | 2026-06-17 | NVD's own last-modified date for this record. |
| Classification created | 2026-11-13 | First commit adding this CVE's research note. |
| Last VRT activity | 2026-11-13 | Most recent commit touching this CVE's classification, patch or rule file. |