[ CVE-2026-116591 · Published 26 Oct 2026 ]
compress zstd: Panic on two-block frames
CVSS 8.7
EPSS <1%Fix available
[ Description ]Official description
compress provides various compression algorithms. Prior to 1.20.2, the zstd DecodeAll and streaming decoder paths can panic when a crafted two-block frame reaches huff0.ReadTable with an FSE normalized count of 32768 that readNCount stores in int16 as -32768. The wrapped count allows buildDtable to retain stale fse.Scratch decode-table state from the prior block, and nextFast then derives an out-of-range state and indexes beyond the table instead of returning a decode error. Both blocks are required to preserve and then reuse the stale state, allowing untrusted zstd input to crash an application. This issue is fixed in version 1.20.2.
[ Fixes ]Fixes and patches
- github.com/klauspost/compress/zstd 1.20.2Fixed version · GitHub Advisories · go package github.com/klauspost/compress/zstd: upgrade to 1.20.2 or later (affected <= 1.20.1)
[ Packages ]Affected open-source packages
- github.com/klauspost/compress/zstd goAffected <= 1.20.1 · fixed in 1.20.2 · GHSA-fpmh-frq8-7rj8