Every CVE Search/ Get API key

CVE-2017-20189

Clojure classes can be used to craft a serialized object that runs arbitrary code on deserialization

9.8 CriticalFix available

CVE-2017-20189 is a critical vulnerability (CVSS 9.8) in Clojure, published January 22, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.33%, the 71st percentile. Fixed in org.clojure:clojure 1.9.0.

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

1.33%Up 1.3 points since Jan 24, 2024
90%50%10%1%

What each source reports

NVD Score used 9.8

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.

Record
CVE-2017-20189
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
CVE List 9.8

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.

Record
CVE-2017-20189
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
EUVDEUVD-2024-0379 9.8

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.

Record
EUVD-2024-0379
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-jgxc-8mwq-9xqw 9.8

Clojure classes can be used to craft a serialized object that runs arbitrary code on deserialization

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.

Record
GHSA-jgxc-8mwq-9xqw
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
OSV 9.8

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.

Record
CVE-2017-20189
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2017-20189 9.8

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.

Record
DEBIAN-CVE-2017-20189
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-jgxc-8mwq-9xqw 9.8

Clojure classes can be used to craft a serialized object that runs arbitrary code on deserialization

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.

Record
GHSA-jgxc-8mwq-9xqw
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
OSVUBUNTU-CVE-2017-20189 9.8

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.

Record
UBUNTU-CVE-2017-20189
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVROOT-APP-MAVEN-CVE-2017-20189 No score

CVE-2017-20189 in io.root.org.clojure:clojure - Patched by Root

Root has patched CVE-2017-20189 in the io.root.org.clojure:clojure package for Root:Maven. Multiple fixed versions available.

Record
ROOT-APP-MAVEN-CVE-2017-20189
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.clojure:clojure
Maven
before 1.9.0
1.9.0
clojure
Debian:12
before 1.9.0-1
1.9.0-1
clojure
Debian:13
before 1.9.0-1
1.9.0-1
clojure
Debian:14
before 1.9.0-1
1.9.0-1
org.clojure:clojure
Maven
before 1.9.0, plus listed versions
1.0.01.1.01.2.01.2.11.3.0
Show 45 moreShow less
1.3.0-RC01.3.0-alpha51.3.0-alpha61.3.0-alpha71.3.0-alpha81.3.0-beta11.3.0-beta21.3.0-beta31.4.01.4.0-alpha11.4.0-alpha21.4.0-alpha31.4.0-alpha41.4.0-alpha51.4.0-beta11.4.0-beta21.4.0-beta31.4.0-beta41.4.0-beta51.4.0-beta61.4.0-beta71.5.01.5.0-RC11.5.0-RC141.5.0-RC151.5.0-RC161.5.0-RC171.5.0-RC21.5.0-RC31.5.0-RC41.5.0-RC51.5.0-RC61.5.0-alpha11.5.0-alpha21.5.0-alpha31.5.0-alpha41.5.0-alpha51.5.0-alpha61.5.0-alpha71.5.0-beta11.5.0-beta101.5.0-beta111.5.0-beta121.5.0-beta131.5.0-beta2
1.9.0
io.root.org.clojure:clojure
Root:Maven
before 1.8.0-root.io.1
1.8.0-root.io.11.7.0-root.io.11.6.0-root.io.11.5.1-root.io.11.4.0-root.io.11.9.0-root.io.1
org.clojure:clojure
Root:Maven
before 1.8.0-aikido.1
1.8.0-aikido.11.7.0-aikido.11.6.0-aikido.11.5.1-aikido.11.4.0-aikido.11.9.0-aikido.1
clojure
Ubuntu:18.04:LTS
All versions, plus listed versions
1.8.0-31.9.0~alpha15-11.9.0~alpha15-21.9.0-21.9.0-6~18.04
None known

History

History
WhenChangedSources
2026-11-02createdCVE List, EUVD, GitHub Advisories, NVD, OSV

References

Show 7 moreShow less
This page doesn't list everything

Left out here: 65 versions. The JSON record has them.

MoveEnter Open