CVE-2026-87825

zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free of Compression and Decompression Dictionaries

Published Sep 9, 2026 CVSS 4.0 · 7 High EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

Technical impact

The zstd-jni library contains a use–after–free condition where a compression or decompression stream retains a reference to a dictionary’s lock only during the load operation. If the dictionary object is closed thereafter, the lock is released while the stream still points to unmanaged memory. Subsequent read or write operations then dereference freed native memory, causing silent corruption of the processed data or a JVM crash, which compromises data integrity and availability.

Affected Systems

The vulnerability affects the zstd‑jni library distributed by the luben vendor. All releases from version 1.3.8‑4 through 1.5.7‑13 are impacted. Java applications that incorporate any of these releases—including dependency transitively used by other applications—are susceptible.

Risk and Exploitability

The CVSS score of 7 denotes a high severity vulnerability, but the EPSS score is unavailable, so public exploitation likelihood is unclear. The flaw is not listed in the CISA KEV catalog. Attackers would need control inside a JVM execution environment to close an in‑use dictionary; remote exploitation without that control is unlikely. Local exploitation can corrupt data or cause a denial of service by terminating the JVM.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the zstd‑jni library to version 1.5.7‑14 or later, where the dictionary lock handling has been corrected.
  • Ensure that dictionary objects are not closed while any active stream or context is using them; maintain the dictionary alive until all compression or decompression operations complete.
  • After applying the fix or adjusting the code, re‑test the application for data integrity and monitor the JVM for crashes or abnormal exception logs.

Generated by OpenCVE AI on September 10, 2026 at 13:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Luben
Luben zstd-jni
Vendors & Products Luben
Luben zstd-jni
Type Values Removed Values Added
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.
Title zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free of Compression and Decompression Dictionaries
Weaknesses CWE-416
References
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H'}

cvssV4_0

{'score': 7, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Sep 14, 2026, 1:35 PM
Reserved
Sep 9, 2026, 10:32 AM
Status
Awaiting Analysis
Published
Sep 9, 2026, 3:17 PM
Modified
Sep 14, 2026, 2:17 PM
Severity
Important
Public date
Sep 9, 2026, 2:32 PM