github-actions[bot] opened issue #15018:
Out-of-bounds read in
train_from_bufferwhen sample sizes overflow
Details Status unsound Package zstd-safeVersion 7.0.0URL https://github.com/gyscos/zstd-rs/commit/781ea454191dbf178d09c1daf6fc896d15fbaa2f Date 2026-10-16
ZDICT_trainFromBufferis never told the length of the samples buffer, so
train_from_bufferchecked 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_continuousrelies 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.See advisory page for additional details.
pchickey closed issue #15018:
Out-of-bounds read in
train_from_bufferwhen sample sizes overflow
Details Status unsound Package zstd-safeVersion 7.0.0URL https://github.com/gyscos/zstd-rs/commit/781ea454191dbf178d09c1daf6fc896d15fbaa2f Date 2026-10-16
ZDICT_trainFromBufferis never told the length of the samples buffer, so
train_from_bufferchecked 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_continuousrelies 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.See advisory page for additional details.
Last updated: Oct 31 2026 at 23:03 UTC