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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| luben | zstd-jni | 1.3.8-4 – < 1.5.7-14 | 1.5.7-14 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | zstd-jni-java | 1.5.7-23+ds-1 | — |
| Debian 13 | zstd-jni-java | No fix yet | — |
| Debian 12 | zstd-jni-java | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | zstd-jni-java | No fix yet | — |
| Ubuntu 26.04 LTS | zstd-jni-java | No fix yet | — |
| Ubuntu 24.04 LTS | zstd-jni-java | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | zstd-jni | 1.5.7.16-160000.1.1 | SUSE-SU-2026:23868-1, SUSE-SU-2026:23858-1 |
| SLES 16.0 | zstd-jni | 1.5.7.16-160000.1.1 | SUSE-SU-2026:23868-1, SUSE-SU-2026:23858-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | zstd-jni | 1.5.7.16-160000.1.1 | openSUSE-SU-2026:21902-1 |
Advisories 4
- WID-SEC-2026-3791 IBM SPSS: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 8, 2026
- SUSE-SU-2026:23858-1 Security update for zstd-jni SUSE / openSUSE Security Updates · Sep 27, 2026
- SUSE-SU-2026:23868-1 Security update for zstd-jni SUSE / openSUSE Security Updates · Sep 27, 2026
- openSUSE-SU-2026:21902-1 Security update for zstd-jni SUSE / openSUSE Security Updates · Sep 25, 2026
References
- GitHub Security Advisory (GHSA-2jw3-mg7f-vw4q) vendor-advisory
- Fix commit: closed-state guards on BaseZstdBufferDecompressingStreamNoFinalizer patch
- Fix commit: closed-state guards on the input and output stream setters patch
- Setters without the closed-state guard that readInternal already has, at v1.5.7-13 technical-description
- final stream handle retained after close at v1.5.7-13 technical-description
- zstd-jni v1.5.7-14 Release Notes release-notes
- Commit that made setDict write through the retained native stream handle (first released in 1.3.8-4) technical-description patch
- https://github.com/luben/zstd-jni product
- VulnCheck Advisory: zstd-jni 1.3.8-4 through 1.5.7-13 Use-After-Free via Setters Called After close() third-party-advisory