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.
Published: 2026-10-26
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises when the zstd decoder in the compress library processes a specially crafted two‑block frame. A frame containing an FSE normalized count of 32768 is stored as a signed int16, yielding –32768. This negative value is then used later to build a stale decode‑table, allowing the decoder to index beyond the bounds of its table and trigger a panic. The panic results in a crash of any application that uses the decoder, giving an attacker the ability to destabilize the target system or application with untrusted zstd input.

Affected Systems

Vendor klauspost:compress. Versions prior to 1.20.2 are affected. The issue was addressed in release v1.20.2 and later versions. Applications that depend on this library or process zstd data from external sources are potentially impacted.

Risk and Exploitability

The CVSS score of 8.7 indicates a high impact vulnerability. No EPSS score is currently available, so an exact exploitation probability cannot be quantified, but the lack of a KEV listing suggests this vulnerability has not yet been observed in the wild. The attack vector is likely Remote Delivery via an injected or user‑supplied zstd stream that contains the malicious frame structure. By causing an unhandled panic, an attacker can bring the host application or service down, leading to denial of service.

Generated by OpenCVE AI on October 27, 2026 at 08:05 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade klauspost:compress to version 1.20.2 or later so that the decoder no longer processes the vulnerable two‑block frame.
  • Validate incoming zstd streams to reject frames with anomalous FSE counts or length before passing to the decoder, thereby limiting potential panic conditions.
  • If upgrading immediately is not possible, isolate the zstd decoding path in a separate sandboxed process or crash‑capping container to contain any panic and prevent application‑wide downtime.

Generated by OpenCVE AI on October 27, 2026 at 08:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 27 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
First Time appeared Klauspost
Klauspost compress
Vendors & Products Klauspost
Klauspost compress

Tue, 27 Oct 2026 04:30:00 +0000

Type Values Removed Values Added
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.
Title compress zstd: Panic on two-block frames
Weaknesses CWE-190
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Klauspost Compress
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-26T21:55:20.476Z

Reserved: 2026-10-26T15:03:39.037Z

Link: CVE-2026-116591

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-26T22:16:55.783

Modified: 2026-10-26T22:16:55.783

Link: CVE-2026-116591

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-27T08:15:15Z

Weaknesses
  • CWE-190

    Integer Overflow or Wraparound