RUSTSEC-2026-0401 Out-of-bounds read in `train_from_buffer` when sample sizes overflow
- Exploited in the wild
- Not known
- Fix
- Available
What is RUSTSEC-2026-0401?
RUSTSEC-2026-0401 is a vulnerability in zstd-safe, published on 16 Oct 2026.
Official description
ZDICT_trainFromBuffer is never told the length of the samples buffer, so
train_from_buffer checked that the sample sizes add up to it. With
overflow checks off, as in release builds, that sum wrapped around: sizes
totalling 2^64 plus the buffer length passed the check, and the trainer read
past the end of the buffer. zstd::dict::from_continuous relies on this
check from zstd 0.4.10; older versions of zstd had their own, covered by a
separate advisory.
This requires the sample sizes to come from an untrusted source. The flaw was corrected by summing the sizes with overflow checks.
Which versions are affected by RUSTSEC-2026-0401?
1 open source package ship an affected version, including zstd-safe.
| Package | Affected | Fixed in |
|---|---|---|
zstd-safe crates.io | From 0.0.0-0 | 8.2.0 |
How do I fix RUSTSEC-2026-0401?
Upgrade zstd-safe to 8.2.0 or later.
Is RUSTSEC-2026-0401 being exploited?
There is no known exploitation of RUSTSEC-2026-0401 in the wild and no public exploit code.