RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0404

Double free in DCtx::try_clone

Reported
Issued
Package
zstd-safe (crates.io)
Type
INFO Unsound
Categories
Keywords
#double-free #experimental
References
Patched
  • >=8.2.0
Unaffected
  • <4.1.4
Affected Functions
Version
zstd_safe::DCtx::try_clone
  • >=4.1.4, <8.2.0

Description

DCtx::try_clone (experimental feature, deprecated) is a plain copy of the C context. A context owning a dictionary (from load_dictionary, ref_prefix or init_using_dict) or a dictionary table (ref_ddict with RefMultipleDDicts) ended up with both copies freeing it. A context cloned mid-frame resumed on uninitialized stream state. The clone also silently lost the WindowLogMax limit.

The flaw was corrected by refusing to clone such contexts, and by carrying over the parameters the copy leaves out.

Advisory available under CC0-1.0 license.