CVE-2020-24164
Java vulnerability analysis and mitigation

Overview

A deserialization flaw was discovered in Taoensso Nippy versions from v2.5.0-beta1 (October 2013) through versions before 2.14.2. The vulnerability allows attackers to create malicious payloads that, when deserialized, can execute arbitrary code. This vulnerability was introduced when Nippy added automatic use of Java's Serializable interface as a fallback for unsupported types (GitHub Issue, NVD).

Technical details

The vulnerability exists due to the automatic use of Java's Serializable interface as a fallback mechanism for types that Nippy didn't support via its own Freezable protocol. The issue was introduced in commit 9448d2b on October 24, 2013. The vulnerability has been assigned a CVSS v3.1 base score of 7.8 (HIGH) with vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H (NVD).

Impact

When exploited, this vulnerability allows attackers to execute arbitrary code within the same JVM process when thawing (deserializing) malicious payloads. The vulnerability is particularly concerning because Clojure versions <= v1.8 include vulnerable 'gadget' classes that can be combined into a 'gadget chain' for exploitation (GitHub Issue).

Exploitability

The vulnerability can be exploited when all of the following conditions are met: the application is thawing data from an untrusted source, using a vulnerable version of Nippy, and has vulnerable 'gadget' classes on the classpath that can be combined into a 'gadget chain'. An attacker needs to create a malicious payload using specific vulnerable classes and successfully get the system to freeze and then thaw this payload (GitHub Issue).

Mitigation and workarounds

Users are advised to upgrade to Nippy >= v2.15.0 final, which is safe by default. In version 3, the system implements allowlists for both freezing and thawing operations. The default thaw allowlist contains common safe class names, and objects that don't meet the security criteria are safely quarantined. Organizations can customize the allowlists based on their risk profile and needs (GitHub Issue).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-76904CRITICAL9.8
  • Java logoJava
  • org.geotools.jdbc:gt-jdbc-postgis
NoYesAug 21, 2026
GHSA-mqjf-5f49-2fjhCRITICAL9.8
  • Java logoJava
  • org.geotools:gt-jdbc-postgis
NoYesAug 21, 2026
CVE-2026-61827HIGH8.7
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-63202HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-63124HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management