Skip to content
OpenAdvisories
Unscored RUSTSEC-2026-0402

Heap buffer overflow in `CCtx::try_clone` on a multithreaded context

Published Oct 16, 2026 · Updated Nov 2, 2026 · Assigned by RUSTSEC

Description

`CCtx::try_clone` (`experimental` feature, deprecated) copies tables sized
from the context's applied parameters. Starting a multithreaded frame
(`zstdmt` feature) replaces those parameters with the workers' without
resizing the context's own tables, so after an abandoned single-threaded
frame, the copy wrote up to 512 KiB past a heap allocation, or read past
one. This became reachable with the bundled zstd 1.5.6.

The flaw was corrected by refusing `try_clone` (and the unsafe
`compress_block`) once `NbWorkers` was set on the context.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io zstd-safe >= 4.1.4, < 7.4.0 · >= 8.0.0-0, < 8.2.0 7.4.0, 8.2.0 RUSTSEC-2026-0402

References