Skip to main content
← All vulnerabilities
CVE-2026-116591GHSA-FPMH-FRQ8-7RJ8EUVD-2026-110497

compress zstd: Panic on two-block frames

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.20.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

The Go compression library "compress" (its zstd decoder, used via DecodeAll and streaming decoding) is affected. Processing a specially crafted zstd input can cause the application using it to crash.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original 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.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  4. Record last updated

Affected versions

  • klauspost compress

    fixed in 1.20.2

  • github.com/klauspost/compress/zstdGo

    fixed in 1.20.2

References 3

GitHub · klauspost/compress