CVE-2017-20189: Clojure · Deserialization of Untrusted Data
Source CVE Database V5
Not known to be exploited · CVSS 9.8 Critical : upgrade to 1.9.0 as a priority.
Data as of 26 Oct 2026, 14:05 UTC
- EPSS
- 1.3% chance of exploitation in 30 days – higher than 70% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 1.9.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 22 Jan 2024
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade org.clojure/clojure to 1.9.0.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Mavenorg.clojure/clojurepkg:maven/org.clojure/clojureOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
- Immediate mitigation should focus on preventing deserialization of untrusted data. Organizations must audit all Clojure applications to identify where deserialization occurs and restrict input sources to trusted entities only.
- Upgrade to Clojure version 1.9.0 or later, where this vulnerability is addressed. If upgrading is not immediately feasible, implement strict input validation and sandboxing techniques to limit the impact of malicious payloads.
- Employ runtime application self-protection (RASP) or Web Application Firewalls (WAFs) with custom rules to detect and block suspicious serialized payloads.
- Conduct thorough code reviews and penetration testing focusing on deserialization logic.
- Monitor logs and network traffic for unusual deserialization attempts or anomalies indicative of exploitation attempts.
- Establish incident response plans specifically addressing deserialization attacks to enable rapid containment and remediation.
- Educate developers and security teams about secure deserialization practices and the risks of accepting serialized objects from untrusted sources.
Description
In Clojure before 1.9.0, classes can be used to construct a serialized object that executes arbitrary code upon deserialization. This is relevant if a server deserializes untrusted objects.
References
- hackmd.io/%40fe1w0/HyefvRQKp (opens in a new tab)
- clojure.atlassian.net/browse/CLJ-2204 (opens in a new tab)
- github.com/frohoff/ysoserial/pull/68/files (opens in a new tab)
- github.com/clojure/clojure/commit/271674c9b484d798484d134a5ac40a6df15d3ac3 (opens in a new tab)
- security.snyk.io/vuln/SNYK-JAVA-ORGCLOJURE-5740378 (opens in a new tab)