High severity · published Sep 9, 2026
CVE-2026-87825
zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free of Compression and Decompression Dictionaries
7.7
CVSS
0.2%
EPSS
No
On KEV
Description
zstd-jni before 1.5.7-14 contains a use-after-free vulnerability where streams and contexts hold a dictionary's shared lock only during the load call, allowing the dictionary to be closed while still referenced. Attackers can close a dictionary after associating it with a stream or context, causing subsequent read or write operations to access freed native memory, resulting in silent data corruption or JVM crashes.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Attack vector
Local
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.2% · higher than 12% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
ZS
zstd-jni · luben
1.3.8-4 before 1.5.7-14 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-87825
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-87825
github.com
https://github.com/luben/zstd-jni
github.com
https://github.com/luben/zstd-jni/blob/v1.5.7-13/src/main/java/com/github/luben/zstd/BaseZstdBufferDecompressingStreamNoFinalizer.java
github.com
https://github.com/luben/zstd-jni/blob/v1.5.7-13/src/main/java/com/github/luben/zstd/ZstdInputStreamNoFinalizer.java
github.com
https://github.com/luben/zstd-jni/commit/0827ed02551bbd8d6f8e4bbff99d83bf50f91938
github.com
https://github.com/luben/zstd-jni/commit/393d7311766abbc285b149302c0fe1f94b16d555
github.com
https://github.com/luben/zstd-jni/commit/a560131d7834598afd9cea6b7c107bc88e915936
More from zstd-jni
8.2
CVE-2026-90560
zstd-jni 1.2.0 through 1.5.7-13 Out-of-Bounds Read via ZstdDictDecompress
8.2
CVE-2026-89046
zstd-jni 1.5.5-6 through 1.5.7-13 Out-of-Bounds Read via Negative Offset
8.2
CVE-2026-87823
zstd-jni 1.1.1 through 1.5.7-13 Out-of-Bounds Read via Direct ByteBuffer Frame-Size Methods
8.2
CVE-2026-87795
zstd-jni 1.2.0 through 1.5.7-13 Out-of-Bounds Read via ZstdDictCompress
7.7
CVE-2026-87877
zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free via Setters Called After close()
