Vulnerability RUSTSEC-2026-0398

Unknown
UNKNOWN RISK
Vulnerabilities without an assigned CVSS score. Severity is not determinable from available data.
17 days ago
October 16, 2026 at 12:00 PM UTC
`Seekable::decompress` sets a `Vec` length beyond its capacity for offsets past the end
7.2.2 - 7.3.0 and 8.0.0 - 8.1.0
7.2.2 - 7.3.0 and 8.0.0 - 8.1.0

Summary

`Seekable::decompress` sets a `Vec` length beyond its capacity for offsets past the end

Details

ZSTD_seekable_decompress shortens the requested length to the end of the data without checking that the offset is before it. For an offset past the end, it returns a wrapped-around length without writing anything, and Seekable::decompress passed that length to Vec::set_len.

With the seekable feature, whoever supplies the archive, or chooses the offset, can leave the caller's Vec<u8> with a length far beyond its capacity. Reading it then discloses neighbouring heap memory, and appending to it corrupts memory. Offsets near u64::MAX can also hang the call.

The flaw was corrected by clamping requests to the end of the data, and by checking every count reported by the C library against the buffer capacity.

Impacted packages

Timeline

Published
17 days ago
October 16, 2026 at 12:00 PM UTC
Fixed (8.2.0)
16 days ago
October 16, 2026 at 04:59 PM UTC
Fixed (7.4.0)
1 day ago
November 01, 2026 at 02:11 PM UTC
Last Modified
4 hours ago
November 02, 2026 at 09:30 AM UTC