Description
zstd-jni versions before 1.5.7-14 fail to validate closed state in setDict, setLongMax, setLevel and setRefMultipleDDicts methods of stream classes. Attackers can call these methods on closed streams to write through freed native pointers, corrupting unrelated objects or crashing the JVM.
Published: 2026-09-09
Score: 7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The zstd-jni library contains a use‑after‑free bug where calling setDict, setLongMax, setLevel, or setRefMultipleDDicts after a stream has been closed dereferences freed native pointers. This can corrupt memory, crash the JVM, and may allow arbitrary code execution. The flaw is a classic CWE‑416 scenario.

Affected Systems

All zstd‑jni versions from 1.3.8‑4 through 1.5.7‑13 released by the luben project are vulnerable. The issue is present in BaseZstdBufferDecompressingStreamNoFinalizer and ZstdInputStreamNoFinalizer sources, affecting any Java application that uses these streams and invokes the setter methods after close.

Risk and Exploitability

With a CVSS score of 7, the vulnerability is considered high severity. No EPSS score is reported, so current exploitation probability is unknown, though the flaw has not been listed in CISA KEV. In practice, an attacker would need to trigger the setter methods on a closed stream, which could be achieved through insecure application logic or crafted input. Given the native pointer misuse, the risk to system integrity and confidentiality is significant, especially in trusted or privileged runtimes.

Generated by OpenCVE AI on September 9, 2026 at 16:00 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the zstd‑jni library to version 1.5.7‑14 or later where the close check is added
  • Review application code to ensure no setter methods are called after a stream is closed; add defensive checks or refactor to eliminate the pattern
  • If an immediate upgrade is not possible, isolate the vulnerable library in a separate JVM or container and enable monitoring for abnormal crashes or core dumps

Generated by OpenCVE AI on September 9, 2026 at 16:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 09 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 09 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Description zstd-jni versions before 1.5.7-14 fail to validate closed state in setDict, setLongMax, setLevel and setRefMultipleDDicts methods of stream classes. Attackers can call these methods on closed streams to write through freed native pointers, corrupting unrelated objects or crashing the JVM.
Title zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free via Setters Called After close()
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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-09T15:57:53.652Z

Reserved: 2026-09-09T14:02:07.708Z

Link: CVE-2026-87877

cve-icon Vulnrichment

Updated: 2026-09-09T15:57:47.831Z

cve-icon NVD

Status : Received

Published: 2026-09-09T15:17:28.070

Modified: 2026-09-09T16:17:17.750

Link: CVE-2026-87877

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-09T16:15:01Z

Weaknesses