CVE-2026-89045: zstd-jni 1.4.8-4 through 1.5.7-13 Denial of Service via Negative Length
zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative length parameters in ZstdInputStreamNoFinalizer.read(), allowing attackers to trigger infinite loops. Attackers can pass negative length values to cause the read method to spin indefinitely while holding the stream monitor, blocking all other threads from accessing the stream.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
zstd-jnito a version that resolves this vulnerability.Fixed in 1.5.7-13 - Upgrade
Upgrade
zstd-jnito a version that resolves this vulnerability.Fixed in 1.4.8-4
Event History
Frequently Asked Questions
What access does an attacker need to trigger the denial of service?
The issue can be triggered without privileges or user interaction, but it requires local access. An attacker must be able to invoke ZstdInputStreamNoFinalizer.read() with a negative length parameter.
What is the impact on a shared stream?
The affected read method can enter an infinite loop while holding the stream monitor. Other threads attempting to access that same stream can then be blocked indefinitely.
Which versions are affected?
zstd-jni versions 1.4.8-4 through 1.5.7-13 are affected.