github-actions[bot] opened issue #15016:
Use-after-free when changing a multithreaded context with an unfinished frame
Details Status unsound Package zstd-safeVersion 7.0.0URL https://github.com/gyscos/zstd-rs/commit/e224018a2389915d68ed17f30109bebad36e9734 Date 2026-10-16 When a multithreaded frame (
zstdmtfeature,CParameter::NbWorkers) is
left unfinished, its jobs may still be running on the worker threads: the C
library only waits for them when the next frame starts, or when the context
is freed. A session reset makes the context accept changes again in the
meantime, so:
unloading the dictionary (
load_dictionary,ref_cdict,ref_prefix,
disable_dictionary,init*, orresetwith parameters) freed the
dictionary a worker was still compressing against;changing
NbWorkersmade the next frame resize the job table before
waiting for the old jobs.The flaw was corrected by refusing these calls while a multithreaded frame
is unfinished. The newCCtx::wait_for_workers()waits for the workers
first.See advisory page for additional details.
pchickey closed issue #15016:
Use-after-free when changing a multithreaded context with an unfinished frame
Details Status unsound Package zstd-safeVersion 7.0.0URL https://github.com/gyscos/zstd-rs/commit/e224018a2389915d68ed17f30109bebad36e9734 Date 2026-10-16 When a multithreaded frame (
zstdmtfeature,CParameter::NbWorkers) is
left unfinished, its jobs may still be running on the worker threads: the C
library only waits for them when the next frame starts, or when the context
is freed. A session reset makes the context accept changes again in the
meantime, so:
unloading the dictionary (
load_dictionary,ref_cdict,ref_prefix,
disable_dictionary,init*, orresetwith parameters) freed the
dictionary a worker was still compressing against;changing
NbWorkersmade the next frame resize the job table before
waiting for the old jobs.The flaw was corrected by refusing these calls while a multithreaded frame
is unfinished. The newCCtx::wait_for_workers()waits for the workers
first.See advisory page for additional details.
Last updated: Oct 31 2026 at 23:03 UTC