Vulnerability RUSTSEC-2026-0401
Summary
Out-of-bounds read in `train_from_buffer` when sample sizes overflow
Details
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.
Related Vulnerabilities
Other vulnerabilities affecting the same packages