CVE-2026-116591
compress zstd: Panic on two-block frames
CVE-2026-116591 is a high vulnerability (CVSS 8.7) in Klauspost Compress, published October 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in github.com/klauspost/compress/zstd 1.20.2.
- Severity
- 8.7 HighCVSS 4.0, CVE List
- Exploit chance
- 0.33%EPSS, 26th percentile
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
1.20.2github.com/klauspost/compress/zstd +158 more
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/klauspost/compress/zstdGo | through 1.20.1 | 1.20.2 |
dockerAlpine:v3.24 | before 29.9.3-r0 | 29.9.3-r0 |
grafana-pcpAlmaLinux:8 | before 5.1.1-20.el8_10 | 5.1.1-20.el8_10 |
grafanaAlmaLinux:8 From an advisory covering 2 CVEs | before 9.2.10-38.el8_10 | 9.2.10-38.el8_10 |
grafana-selinuxAlmaLinux:8 From an advisory covering 2 CVEs | before 9.2.10-38.el8_10 | 9.2.10-38.el8_10 |
azl-otel-collectorAzure Linux:3 | through 0.127.0-1 | None known |
buildahAzure Linux:3 | through 1.43.1-3 | None known |
cri-oAzure Linux:3 | through 1.30.1-1 | None known |
kata-containers-previewAzure Linux:3 | through 3.27.0~preview2-2 | None known |
podmanAzure Linux:3 | through 5.6.1-10 | None known |
Show 149 moreShow less
| Package | Affected | Fixed |
|---|---|---|
umociAzure Linux:3 | through 0.4.7-13 | None known |
azurelinux-image-toolsAzure Linux:3 | through 1.7.0-2 | None known |
cert-managerAzure Linux:3 | through 1.12.15-15 | None known |
containerd2Azure Linux:3 | through 2.3.7-1 | None known |
containerized-data-importerAzure Linux:3 | through 1.62.0-9 | None known |
corednsAzure Linux:3 | through 1.11.4-23 | None known |
docker-buildxAzure Linux:3 | through 0.14.0-19 | None known |
docker-cliAzure Linux:3 | through 25.0.7-6 | None known |
docker-composeAzure Linux:3 | through 2.27.0-16 | None known |
ghAzure Linux:3 | through 2.102.0-2 | None known |
influxdbAzure Linux:3 | through 2.7.5-24 | None known |
kata-containersAzure Linux:3 | through 4.1.0.kata1-2 | None known |
kata-containers-ccAzure Linux:3 | through 3.15.0.aks0-23 | None known |
kedaAzure Linux:3 | through 2.14.1-19 | None known |
kubernetesAzure Linux:3 | through 1.30.10-32 | None known |
libcontainers-commonAzure Linux:3 | through 20240213-3 | None known |
kubevirt-openvmmAzure Linux:3 | through 1.9.0-1 | None known |
moby-containerd-ccAzure Linux:3 | through 1.7.7-19 | None known |
moby-engineAzure Linux:3 | through 25.0.18-1 | None known |
opaAzure Linux:3 | through 0.63.0-6 | None known |
packerAzure Linux:3 | through 1.9.5-24 | None known |
skopeoAzure Linux:3 | through 1.14.4-15 | None known |
telegrafAzure Linux:3 | through 1.31.0-36 | None known |
vitessAzure Linux:3 | through 19.0.4-16 | None known |
dockerAlpaquita:stream | 24.0.2-r0 up to 29.9.3-r0 | 29.9.3-r0 |
golang-github-klauspost-compressDebian:12 | All versions, plus listed versions 1.15.12+ds1-31.17.0+ds1-11.17.0+ds1-1~exp11.17.10+ds1-11.17.11+ds1-1 Show 12 moreShow less1.17.2+ds1-11.17.7+ds1-11.17.9+ds1-11.17.9+ds1-1~bpo12+11.18.0+ds1-11.18.1+ds1-11.18.6+ds1-11.18.6+ds1-21.19.0+ds1-11.19.0+ds1-21.20.0+ds1-11.20.3+ds1-1 | None known |
golang-github-klauspost-compressDebian:13 | All versions, plus listed versions 1.18.0+ds1-11.18.1+ds1-11.18.6+ds1-11.18.6+ds1-21.19.0+ds1-11.19.0+ds1-21.20.0+ds1-11.20.3+ds1-1 | None known |
golang-github-klauspost-compressDebian:14 | before 1.20.3+ds1-1, plus listed versions 1.18.0+ds1-11.18.1+ds1-11.18.6+ds1-11.18.6+ds1-21.19.0+ds1-11.19.0+ds1-21.20.0+ds1-1 | 1.20.3+ds1-1 |
github.com/klauspost/compress/zstdGo | before 1.20.2 | 1.20.2 |
github.com/klauspost/compressGo | before 1.20.2 | 1.20.2 |
opentelemetry-collector-k8sRed Hat:hummingbird:1 | before 0:0.163.2-0.1.hum1 | 0:0.163.2-0.1.hum1 |
buildahRed Hat:hummingbird:1 | before 2:1.46.0-1.hum1 | 2:1.46.0-1.hum1 |
opentelemetry-collectorRed Hat:hummingbird:1 | before 0:0.164.0-0.1.hum1 | 0:0.164.0-0.1.hum1 |
skopeoRed Hat:hummingbird:1 | before 1:1.24.1-1.3.hum1 | 1:1.24.1-1.3.hum1 |
skopeo-testsRed Hat:hummingbird:1 | before 1:1.24.1-1.3.hum1 | 1:1.24.1-1.3.hum1 |
syftRed Hat:hummingbird:1 | before 0:1.55.0-0.3.hum1 | 0:1.55.0-0.3.hum1 |
distributionRed Hat:hummingbird:1 | before 0:3.1.2-0.4.hum1 | 0:3.1.2-0.4.hum1 |
podmanRed Hat:hummingbird:1 | before 5:6.1.4-1.2.hum1 | 5:6.1.4-1.2.hum1 |
podman-dockerRed Hat:hummingbird:1 | before 5:6.1.4-1.2.hum1 | 5:6.1.4-1.2.hum1 |
podman-machineRed Hat:hummingbird:1 | before 5:6.1.4-1.2.hum1 | 5:6.1.4-1.2.hum1 |
podman-remoteRed Hat:hummingbird:1 | before 5:6.1.4-1.2.hum1 | 5:6.1.4-1.2.hum1 |
podmanshRed Hat:hummingbird:1 | before 5:6.1.4-1.2.hum1 | 5:6.1.4-1.2.hum1 |
cosignRed Hat:hummingbird:1 | before 0:3.1.4-0.2.hum1 | 0:3.1.4-0.2.hum1 |
opentelemetry-collector-contribRed Hat:hummingbird:1 | before 0:0.164.0-0.1.hum1 | 0:0.164.0-0.1.hum1 |
k6v1Red Hat:hummingbird:1 | before 0:1.8.2-0.3.hum1 | 0:1.8.2-0.3.hum1 |
k6v2Red Hat:hummingbird:1 | before 0:2.3.0-0.4.hum1 | 0:2.3.0-0.4.hum1 |
jaegerRed Hat:hummingbird:1 | before 0:2.21.0-0.3.hum1 | 0:2.21.0-0.3.hum1 |
tempo3.0Red Hat:hummingbird:1 | before 0:3.0.4-0.3.hum1 | 0:3.0.4-0.3.hum1 |
spire1.14Red Hat:hummingbird:1 | before 0:1.14.9-0.3.hum1 | 0:1.14.9-0.3.hum1 |
spire1.14-agentRed Hat:hummingbird:1 | before 0:1.14.9-0.3.hum1 | 0:1.14.9-0.3.hum1 |
spire1.14-oidc-discovery-providerRed Hat:hummingbird:1 | before 0:1.14.9-0.3.hum1 | 0:1.14.9-0.3.hum1 |
spire1.14-serverRed Hat:hummingbird:1 | before 0:1.14.9-0.3.hum1 | 0:1.14.9-0.3.hum1 |
spire1.15Red Hat:hummingbird:1 | before 0:1.15.5-0.3.hum1 | 0:1.15.5-0.3.hum1 |
spire1.15-agentRed Hat:hummingbird:1 | before 0:1.15.5-0.3.hum1 | 0:1.15.5-0.3.hum1 |
spire1.15-oidc-discovery-providerRed Hat:hummingbird:1 | before 0:1.15.5-0.3.hum1 | 0:1.15.5-0.3.hum1 |
spire1.15-serverRed Hat:hummingbird:1 | before 0:1.15.5-0.3.hum1 | 0:1.15.5-0.3.hum1 |
trivyRed Hat:hummingbird:1 | before 0:0.76.1-0.2.hum1 | 0:0.76.1-0.2.hum1 |
caddyRed Hat:hummingbird:1 | before 0:2.11.7-0.4.hum1 | 0:2.11.7-0.4.hum1 |
prometheus3.13Red Hat:hummingbird:1 | before 0:3.13.5-0.2.hum1 | 0:3.13.5-0.2.hum1 |
grypeRed Hat:hummingbird:1 | before 0:0.121.0-0.3.hum1 | 0:0.121.0-0.3.hum1 |
git-lfsRed Hat:hummingbird:1 | before 0:3.8.1-0.2.hum1 | 0:3.8.1-0.2.hum1 |
opentofu1.12Red Hat:hummingbird:1 | before 0:1.12.9-0.2.hum1 | 0:1.12.9-0.2.hum1 |
loki3.7Red Hat:hummingbird:1 | before 0:3.7.9-0.2.hum1 | 0:3.7.9-0.2.hum1 |
loki3.7-canaryRed Hat:hummingbird:1 | before 0:3.7.9-0.2.hum1 | 0:3.7.9-0.2.hum1 |
loki3.7-logcliRed Hat:hummingbird:1 | before 0:3.7.9-0.2.hum1 | 0:3.7.9-0.2.hum1 |
opentofu1.12Red Hat:hummingbird:1 | before 0:1.12.11-0.1.hum1 | 0:1.12.11-0.1.hum1 |
grafana12.4Red Hat:hummingbird:1 From an advisory covering 5 CVEs | before 0:12.4.13-0.6.hum1 | 0:12.4.13-0.6.hum1 |
grafana13.1Red Hat:hummingbird:1 From an advisory covering 2 CVEs | before 0:13.1.8-0.6.hum1 | 0:13.1.8-0.6.hum1 |
grafana13.2Red Hat:hummingbird:1 From an advisory covering 3 CVEs | before 0:13.2.4-0.6.hum1 | 0:13.2.4-0.6.hum1 |
tempo2.10Red Hat:hummingbird:1 | before 0:2.10.9-0.2.hum1 | 0:2.10.9-0.2.hum1 |
loki3.6Red Hat:hummingbird:1 | before 0:3.6.19-0.3.hum1 | 0:3.6.19-0.3.hum1 |
loki3.6-canaryRed Hat:hummingbird:1 | before 0:3.6.19-0.3.hum1 | 0:3.6.19-0.3.hum1 |
loki3.6-logcliRed Hat:hummingbird:1 | before 0:3.6.19-0.3.hum1 | 0:3.6.19-0.3.hum1 |
grafanaRed Hat:enterprise_linux:9::appstream From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-debugsourceRed Hat:enterprise_linux:9::appstream From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-selinuxRed Hat:enterprise_linux:9::appstream From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-pcpRed Hat:enterprise_linux:10.3 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafana-pcp-debuginfoRed Hat:enterprise_linux:10.3 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafana-pcp-debugsourceRed Hat:enterprise_linux:10.3 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafanaRed Hat:enterprise_linux:10.3 From an advisory covering 3 CVEs | before 0:12.4.3-3.el10_3.6 | 0:12.4.3-3.el10_3.6 |
grafana-debuginfoRed Hat:enterprise_linux:10.3 From an advisory covering 3 CVEs | before 0:12.4.3-3.el10_3.6 | 0:12.4.3-3.el10_3.6 |
grafana-debugsourceRed Hat:enterprise_linux:10.3 From an advisory covering 3 CVEs | before 0:12.4.3-3.el10_3.6 | 0:12.4.3-3.el10_3.6 |
grafana-selinuxRed Hat:enterprise_linux:10.3 From an advisory covering 3 CVEs | before 0:12.4.3-3.el10_3.6 | 0:12.4.3-3.el10_3.6 |
grafana-pcpRed Hat:enterprise_linux:8::appstream | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafana-pcp-debuginfoRed Hat:enterprise_linux:8::appstream | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafana-pcp-debugsourceRed Hat:enterprise_linux:8::appstream | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafanaRed Hat:enterprise_linux:8::appstream From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-debuginfoRed Hat:enterprise_linux:8::appstream From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-debugsourceRed Hat:enterprise_linux:8::appstream From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-selinuxRed Hat:enterprise_linux:8::appstream From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafanaRed Hat:enterprise_linux_eus:10.2 From an advisory covering 2 CVEs | before 0:10.2.6-28.el10_2.11 | 0:10.2.6-28.el10_2.11 |
grafana-debuginfoRed Hat:enterprise_linux_eus:10.2 From an advisory covering 2 CVEs | before 0:10.2.6-28.el10_2.11 | 0:10.2.6-28.el10_2.11 |
grafana-debugsourceRed Hat:enterprise_linux_eus:10.2 From an advisory covering 2 CVEs | before 0:10.2.6-28.el10_2.11 | 0:10.2.6-28.el10_2.11 |
grafana-selinuxRed Hat:enterprise_linux_eus:10.2 From an advisory covering 2 CVEs | before 0:10.2.6-28.el10_2.11 | 0:10.2.6-28.el10_2.11 |
grafanaRed Hat:rhel_eus:9.8::appstream From an advisory covering 2 CVEs | before 0:10.2.6-23.el9_8.10 | 0:10.2.6-23.el9_8.10 |
grafana-debuginfoRed Hat:rhel_eus:9.8::appstream From an advisory covering 2 CVEs | before 0:10.2.6-23.el9_8.10 | 0:10.2.6-23.el9_8.10 |
grafana-debugsourceRed Hat:rhel_eus:9.8::appstream From an advisory covering 2 CVEs | before 0:10.2.6-23.el9_8.10 | 0:10.2.6-23.el9_8.10 |
grafana-selinuxRed Hat:rhel_eus:9.8::appstream From an advisory covering 2 CVEs | before 0:10.2.6-23.el9_8.10 | 0:10.2.6-23.el9_8.10 |
grafana-pcpRed Hat:rhel_eus:9.8::appstream | before 0:5.1.1-17.el9_8.3 | 0:5.1.1-17.el9_8.3 |
grafana-pcp-debuginfoRed Hat:rhel_eus:9.8::appstream | before 0:5.1.1-17.el9_8.3 | 0:5.1.1-17.el9_8.3 |
grafana-pcp-debugsourceRed Hat:rhel_eus:9.8::appstream | before 0:5.1.1-17.el9_8.3 | 0:5.1.1-17.el9_8.3 |
grafana-pcpRed Hat:enterprise_linux_eus:10.2 | before 0:5.3.0-8.el10_2.3 | 0:5.3.0-8.el10_2.3 |
grafana-pcp-debuginfoRed Hat:enterprise_linux_eus:10.2 | before 0:5.3.0-8.el10_2.3 | 0:5.3.0-8.el10_2.3 |
grafana-pcp-debugsourceRed Hat:enterprise_linux_eus:10.2 | before 0:5.3.0-8.el10_2.3 | 0:5.3.0-8.el10_2.3 |
grafana-pcpRed Hat:enterprise_linux:9::appstream | before 0:5.1.1-17.el9_9.4 | 0:5.1.1-17.el9_9.4 |
grafana-pcp-debuginfoRed Hat:enterprise_linux:9::appstream | before 0:5.1.1-17.el9_9.4 | 0:5.1.1-17.el9_9.4 |
grafana-pcp-debugsourceRed Hat:enterprise_linux:9::appstream | before 0:5.1.1-17.el9_9.4 | 0:5.1.1-17.el9_9.4 |
grafanaRocky Linux:9 From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-debuginfoRocky Linux:9 From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-debugsourceRocky Linux:9 From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-selinuxRocky Linux:9 From an advisory covering 2 CVEs | before 0:10.2.6-24.el9_9.8 | 0:10.2.6-24.el9_9.8 |
grafana-pcpRocky Linux:10 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafana-pcp-debuginfoRocky Linux:10 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafana-pcp-debugsourceRocky Linux:10 | before 0:6.1.0-2.el10_3.3 | 0:6.1.0-2.el10_3.3 |
grafana-pcpRocky Linux:8 | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafana-pcp-debuginfoRocky Linux:8 | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafana-pcp-debugsourceRocky Linux:8 | before 0:5.1.1-20.el8_10 | 0:5.1.1-20.el8_10 |
grafanaRocky Linux:8 From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-debuginfoRocky Linux:8 From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-debugsourceRocky Linux:8 From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
grafana-selinuxRocky Linux:8 From an advisory covering 2 CVEs | before 0:9.2.10-38.el8_10 | 0:9.2.10-38.el8_10 |
aliyun-cliSUSE:Linux Enterprise Server 16.0 | before 3.5.2-160000.1.1 | 3.5.2-160000.1.1 |
aliyun-cliSUSE:Linux Enterprise Server for SAP applications 16.0 | before 3.5.2-160000.1.1 | 3.5.2-160000.1.1 |
aliyun-cliSUSE:Linux Enterprise Module for Public Cloud 15 SP5 From an advisory covering 2 CVEs | before 3.5.2-150400.9.13.1 | 3.5.2-150400.9.13.1 |
aliyun-cliSUSE:Linux Enterprise Module for Public Cloud 15 SP6 From an advisory covering 2 CVEs | before 3.5.2-150400.9.13.1 | 3.5.2-150400.9.13.1 |
aliyun-cliSUSE:Linux Enterprise Module for Public Cloud 15 SP7 From an advisory covering 2 CVEs | before 3.5.2-150400.9.13.1 | 3.5.2-150400.9.13.1 |
golang-github-klauspost-compressUbuntu:16.04:LTS | All versions, plus listed versions 0.0~git20151221.0.2dd54ae-1 | None known |
golang-github-klauspost-compressUbuntu:18.04:LTS | All versions, plus listed versions 1.2.1-11.2.1-21.2.1-41.2.1-5 | None known |
golang-github-klauspost-compressUbuntu:20.04:LTS | All versions, plus listed versions 1.2.1-51.7.6-21.9.5-11.9.5-2 | None known |
golang-github-klauspost-compressUbuntu:22.04:LTS | All versions, plus listed versions 1.11.7-2 | None known |
golang-github-klauspost-compressUbuntu:24.04:LTS | All versions, plus listed versions 1.15.12+ds1-31.17.7+ds1-1 | None known |
golang-github-klauspost-compressUbuntu:26.10 | All versions, plus listed versions 1.18.1+ds1-11.19.0+ds1-11.20.0+ds1-1 | None known |
golang-github-klauspost-compressUbuntu:26.04:LTS | All versions, plus listed versions 1.18.0+ds1-11.18.1+ds1-1 | None known |
aliyun-cliopenSUSE:Tumbleweed | before 3.5.2-2.1 | 3.5.2-2.1 |
cadvisoropenSUSE:Tumbleweed From an advisory covering 2 CVEs | before 0.60.6-5.1 | 0.60.6-5.1 |
distributionopenSUSE:Tumbleweed | before 3.1.2-4.1 | 3.1.2-4.1 |
go-containerregistryopenSUSE:Tumbleweed | before 0.22.1-3.1 | 0.22.1-3.1 |
hauleropenSUSE:Tumbleweed | before 2.1.2-3.1 | 2.1.2-3.1 |
helmopenSUSE:Tumbleweed From an advisory covering 5 CVEs | before 4.3.1-3.1 | 4.3.1-3.1 |
helm3openSUSE:Tumbleweed | before 3.22.1-2.1 | 3.22.1-2.1 |
amazon-cloudwatch-agentopenSUSE:Tumbleweed | before 1.300073.2-3.1 | 1.300073.2-3.1 |
google-osconfig-agentopenSUSE:Tumbleweed From an advisory covering 4 CVEs | before 20261103.02-1.1 | 20261103.02-1.1 |
syftopenSUSE:Tumbleweed From an advisory covering 2 CVEs | before 1.56.0-1.1 | 1.56.0-1.1 |
gopassopenSUSE:Tumbleweed | before 1.17.4-2.1 | 1.17.4-2.1 |
cadvisoropenSUSE:Leap 16.0 From an advisory covering 2 CVEs | before 0.60.6-bp160.4.1 | 0.60.6-bp160.4.1 |
go-containerregistryopenSUSE:Leap 16.0 From an advisory covering 3 CVEs | before 0.22.1-bp160.1.1 | 0.22.1-bp160.1.1 |
hauleropenSUSE:Leap 16.0 | before 2.1.2-bp160.2.1 | 2.1.2-bp160.2.1 |
aliyun-cliopenSUSE:Leap 16.0 | before 3.5.2-160000.1.1 | 3.5.2-160000.1.1 |
What each source reports
CVE List Score used 8.7
compress zstd: Panic on two-block frames
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.
- Record
CVE-2026-116591- CVSS 4.0
- 8.7 High
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 - Weakness
- CWE-190
- Updated
- 2026-11-02
EUVDEUVD-2026-110497 8.7
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.
- Record
EUVD-2026-110497- CVSS 4.0
- 8.7 High
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fpmh-frq8-7rj8 8.7
compress zstd: Panic on two-block frames
Summary
A crafted ~27 KB two-block zstd frame makes DecodeAll and the streaming decoder panic with an out-of-range slice index instead of returning a decode error. The same bytes decode fine with the reference zstd. Any program that decompresses untrusted zstd input can be crashed by it. Reproduced on v1.20.0 and v1.20.1.
Released in https://github.com/klauspost/compress/releases/tag/v1.20.2
Details
The panic is in the FSE decoder that huff0.ReadTable uses to read a block's Huffman-weight table. Three conditions have to hold at once, and the crafted frame arranges all three.
1. A count that doesn't fit is accepted. readNCount permits a tableLog up to 15 (tablelogAbsoluteMax, checked at fse/decompress.go:54), so a symbol's normalized count can reach 32768 (2^15). The count is stored in an int16 at fse/decompress.go:126, where 32768 wraps to −32768. The validation only looks at the int32 running totals (remaining and gotTotal), which still match, so the bad value passes. The crafted second block produces norm = [0, -32768], symbolLen = 2.
2. The decode table is built empty, with no error. In buildDtable, −32768 isn't the −1 that flags a low-probability symbol, so it skips that branch, and the spread loop for i := 0; i < int(v); i++ runs zero times for a negative v. position never advances, so the position != 0 guard passes as well.
3. Stale state from the previous block is reused. huff0 shares one fse.Scratch across both blocks, and allocDtable reuses decTable and ct.stateTable without clearing them. So the table is rebuilt on top of block 1's symbols and symbolNext values. Many cells end up with nbBits == 0, because the leftover nextState is ≥ 32768.
At decode time, every symbol's count is below largeLimit, so zeroBits stays false and decompress takes the nextFast path. On a cell with nbBits == 0, getBitsFast(0) shifts by (64-0)&63 == 0 and returns the low 16 bits of the whole register instead of 0. The state runs past the end of the table, and d.dt[d.state] panics:
panic: runtime error: index out of range [33077] with length 32768
Both blocks are needed. With a fresh Scratch, every cell would be symbol 0 with symbolNext 0, highBits(0) would underflow, newState would reach 32768, and the newState >= tableSize guard would return an error. Block 1's leftover state is what carries the malformed table past that guard.
The underlying bug is the int16 storage combined with a tableLog allowed to reach 15. The C reference uses short too, but caps the FSE tableLog at 12 and the Huffman-weight tableLog at 6, so the count never wraps. huff0.ReadTable doesn't enforce that 6-bit bound.
A fix: reject a count of 1<<15 (or nbBits > 14) in readNCount, and enforce the weight-table tableLog in huff0. Clearing the reused table would also turn the panic into an error.
Proof of concept
Run the following repro:
package compression
import (
"bytes"
"slices"
"testing"
"github.com/klauspost/compress/zstd"
"github.com/stretchr/testify/require"
)
func TestDecodeAll(t *testing.T) {
// zstdFSEPanic is a crafted two-block…
- Record
GHSA-fpmh-frq8-7rj8- CVSS 4.0
- 8.7 High
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 - Weakness
- CWE-190
- Updated
- 2026-11-02
NVD 8.7
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.
- Record
CVE-2026-116591- CVSS 4.0
- 8.7 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-190
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-116591 8.7
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.
- Record
ALPINE-CVE-2026-116591- CVSS 4.0
- 8.7 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-05
OSV 8.7
compress zstd: Panic on two-block frames
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.
- Record
CVE-2026-116591- CVSS 4.0
- 8.7 High
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 - Weakness
- CWE-190
- Updated
- 2026-11-07
Show 48 moreShow less
OSVDEBIAN-CVE-2026-116591 8.7
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.
- Record
DEBIAN-CVE-2026-116591- CVSS 4.0
- 8.7 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVGHSA-fpmh-frq8-7rj8 8.7
compress zstd: Panic on two-block frames
Summary
A crafted ~27 KB two-block zstd frame makes DecodeAll and the streaming decoder panic with an out-of-range slice index instead of returning a decode error. The same bytes decode fine with the reference zstd. Any program that decompresses untrusted zstd input can be crashed by it. Reproduced on v1.20.0 and v1.20.1.
Released in https://github.com/klauspost/compress/releases/tag/v1.20.2
Details
The panic is in the FSE decoder that huff0.ReadTable uses to read a block's Huffman-weight table. Three conditions have to hold at once, and the crafted frame arranges all three.
1. A count that doesn't fit is accepted. readNCount permits a tableLog up to 15 (tablelogAbsoluteMax, checked at fse/decompress.go:54), so a symbol's normalized count can reach 32768 (2^15). The count is stored in an int16 at fse/decompress.go:126, where 32768 wraps to −32768. The validation only looks at the int32 running totals (remaining and gotTotal), which still match, so the bad value passes. The crafted second block produces norm = [0, -32768], symbolLen = 2.
2. The decode table is built empty, with no error. In buildDtable, −32768 isn't the −1 that flags a low-probability symbol, so it skips that branch, and the spread loop for i := 0; i < int(v); i++ runs zero times for a negative v. position never advances, so the position != 0 guard passes as well.
3. Stale state from the previous block is reused. huff0 shares one fse.Scratch across both blocks, and allocDtable reuses decTable and ct.stateTable without clearing them. So the table is rebuilt on top of block 1's symbols and symbolNext values. Many cells end up with nbBits == 0, because the leftover nextState is ≥ 32768.
At decode time, every symbol's count is below largeLimit, so zeroBits stays false and decompress takes the nextFast path. On a cell with nbBits == 0, getBitsFast(0) shifts by (64-0)&63 == 0 and returns the low 16 bits of the whole register instead of 0. The state runs past the end of the table, and d.dt[d.state] panics:
panic: runtime error: index out of range [33077] with length 32768
Both blocks are needed. With a fresh Scratch, every cell would be symbol 0 with symbolNext 0, highBits(0) would underflow, newState would reach 32768, and the newState >= tableSize guard would return an error. Block 1's leftover state is what carries the malformed table past that guard.
The underlying bug is the int16 storage combined with a tableLog allowed to reach 15. The C reference uses short too, but caps the FSE tableLog at 12 and the Huffman-weight tableLog at 6, so the count never wraps. huff0.ReadTable doesn't enforce that 6-bit bound.
A fix: reject a count of 1<<15 (or nbBits > 14) in readNCount, and enforce the weight-table tableLog in huff0. Clearing the reused table would also turn the panic into an error.
Proof of concept
Run the following repro:
package compression
import (
"bytes"
"slices"
"testing"
"github.com/klauspost/compress/zstd"
"github.com/stretchr/testify/require"
)
func TestDecodeAll(t *testing.T) {
// zstdFSEPanic is a crafted two-block…
- Record
GHSA-fpmh-frq8-7rj8- CVSS 4.0
- 8.7 High
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 - Weakness
- CWE-190
- Updated
- 2026-11-06
OSVRHSA-2026:88185 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:88185- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:88190 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:88190- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:90991 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:90991- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91368 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91368- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91376 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91376- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91378 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91378- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91385 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91385- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91389 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91389- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91393 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:91393- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91401 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91401- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91412 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91412- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91444 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91444- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91459 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91459- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91460 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91460- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91462 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91462- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91471 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91471- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91480 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91480- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91483 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91483- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91643 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91643- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91645 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91645- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91647 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91647- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:91665 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:91665- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:92903 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:92903- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:93601 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:93601- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:93608 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:93608- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:94794 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:94794- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:95406 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:95406- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:95617 7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:95617- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:98541 7.7
Red Hat Security Advisory: grafana security update
- Record
RHSA-2026:98541- CVSS 3.1
- 7.7 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L - Updated
- 2026-11-13
OSVRHSA-2026:98620 7.5
Red Hat Security Advisory: grafana-pcp security update
- Record
RHSA-2026:98620- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:98639 7.7
Red Hat Security Advisory: grafana security update
- Record
RHSA-2026:98639- CVSS 3.1
- 7.7 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-13
OSVRHSA-2026:99020 7.5
Red Hat Security Advisory: grafana-pcp security update
- Record
RHSA-2026:99020- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:99030 7.5
Red Hat Security Advisory: grafana security update
- Record
RHSA-2026:99030- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:99134 7.7
Red Hat Security Advisory: grafana security update
- Record
RHSA-2026:99134- CVSS 3.1
- 7.7 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L - Updated
- 2026-11-13
OSVRHSA-2026:99151 7.7
Red Hat Security Advisory: grafana security update
- Record
RHSA-2026:99151- CVSS 3.1
- 7.7 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L - Updated
- 2026-11-13
OSVRHSA-2026:99152 7.5
Red Hat Security Advisory: grafana-pcp security update
- Record
RHSA-2026:99152- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:99171 7.5
Red Hat Security Advisory: grafana-pcp security update
- Record
RHSA-2026:99171- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRHSA-2026:99172 7.5
Red Hat Security Advisory: grafana-pcp security update
- Record
RHSA-2026:99172- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRLSA-2026:98541 7.7
Important: grafana security update
Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB.
Security Fix(es):
grafana: Azure Monitor data source could leak its Azure access token (CVE-2026-88967)
github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:98541- CVSS 3.1
- 7.7 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L - Updated
- 2026-11-13
OSVRLSA-2026:98620 7.5
Important: grafana-pcp security update
The Grafana plugin for Performance Co-Pilot includes datasources for scalable time series from pmseries and Redis, live PCP metrics and bpftrace scripts from pmdabpftrace, as well as several dashboards.
Security Fix(es):
- github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:98620- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRLSA-2026:99020 7.5
Important: grafana-pcp security update
The Grafana plugin for Performance Co-Pilot includes datasources for scalable time series from pmseries and Redis, live PCP metrics and bpftrace scripts from pmdabpftrace, as well as several dashboards.
Security Fix(es):
- github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:99020- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVRLSA-2026:99030 7.5
Important: grafana security update
Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB.
Security Fix(es):
grafana: Grafana: Information disclosure vulnerability in Unified Alerting (CVE-2026-17183)
github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:99030- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-13
OSVUBUNTU-CVE-2026-116591 8.7
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.
- Record
UBUNTU-CVE-2026-116591- CVSS 4.0
- 8.7 High
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 - Updated
- 2026-11-02
OSVALSA-2026:99020No score
Important: grafana-pcp security update
The Grafana plugin for Performance Co-Pilot includes datasources for scalable time series from pmseries and Redis, live PCP metrics and bpftrace scripts from pmdabpftrace, as well as several dashboards.
Security Fix(es):
- github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:99020- Updated
- 2026-11-13
OSVALSA-2026:99030No score
Important: grafana security update
Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB.
Security Fix(es):
- grafana: Grafana: Information disclosure vulnerability in Unified Alerting (CVE-2026-17183)
- github.com/klauspost/compress/zstd: klauspost/compress: Denial of Service via crafted zstd compressed input (CVE-2026-116591)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:99030- Updated
- 2026-11-13
OSVAZL-111664No score
CVE-2026-116591 affecting package azl-otel-collector 0.127.0-1
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.
- Record
AZL-111664- Updated
- 2026-11-05
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV |
Show 8 moreShow less
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected | ||
| affected, aliases | OSV | |
| affected, aliases, references | OSV | |
| affected | OSV | |
| affected, aliases, references | OSV | |
| affected, aliases, facts, references | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
References
github.com/klauspost/compress/security/advisories/GHSA-fpmh-frq8-7rj8
github.com/klauspost/compress/commit/7f5d8528720c895a6106f201719f87eb030a565d
github.com/klauspost/compress/releases/tag/v1.20.2
nvd.nist.gov/vuln/detail/CVE-2026-116591
github.com/advisories/GHSA-fpmh-frq8-7rj8
security.alpinelinux.org/vuln/CVE-2026-116591
Show 167 moreShow less
access.redhat.com/errata/RHSA-2026:99020
access.redhat.com/security/cve/CVE-2026-116591
bugzilla.redhat.com/2561461
errata.almalinux.org/8/ALSA-2026-99020.html
access.redhat.com/errata/RHSA-2026:99030
access.redhat.com/security/cve/CVE-2026-17183
bugzilla.redhat.com/2519801
errata.almalinux.org/8/ALSA-2026-99030.html
docs.bell-sw.com/security/cves/CVE-2026-116591
github.com/CVEProject/cvelistV5/tree/main/cves/2026/116xxx/CVE-2026-116591.json
security-tracker.debian.org/tracker/CVE-2026-116591
github.com/klauspost/compress
access.redhat.com/errata/RHSA-2026:88185
images.redhat.com
access.redhat.com/security/updates/classification
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_88185.json
bugzilla.redhat.com/show_bug.cgi?id=2561461
cve.org/CVERecord?id=CVE-2026-116591
access.redhat.com/errata/RHSA-2026:88190
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_88190.json
access.redhat.com/errata/RHSA-2026:90991
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_90991.json
access.redhat.com/errata/RHSA-2026:91368
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91368.json
access.redhat.com/errata/RHSA-2026:91376
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91376.json
access.redhat.com/errata/RHSA-2026:91378
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91378.json
access.redhat.com/errata/RHSA-2026:91385
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91385.json
access.redhat.com/errata/RHSA-2026:91389
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91389.json
access.redhat.com/errata/RHSA-2026:91393
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91393.json
access.redhat.com/errata/RHSA-2026:91401
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91401.json
access.redhat.com/errata/RHSA-2026:91412
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91412.json
access.redhat.com/errata/RHSA-2026:91444
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91444.json
access.redhat.com/errata/RHSA-2026:91459
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91459.json
access.redhat.com/errata/RHSA-2026:91460
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91460.json
access.redhat.com/errata/RHSA-2026:91462
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91462.json
access.redhat.com/errata/RHSA-2026:91471
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91471.json
access.redhat.com/errata/RHSA-2026:91480
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91480.json
access.redhat.com/errata/RHSA-2026:91483
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91483.json
access.redhat.com/errata/RHSA-2026:91643
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91643.json
access.redhat.com/errata/RHSA-2026:91645
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91645.json
access.redhat.com/errata/RHSA-2026:91647
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91647.json
access.redhat.com/errata/RHSA-2026:91665
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_91665.json
access.redhat.com/errata/RHSA-2026:92903
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_92903.json
access.redhat.com/errata/RHSA-2026:93601
access.redhat.com/security/cve/CVE-2026-115754
access.redhat.com/security/cve/CVE-2026-115897
access.redhat.com/security/cve/CVE-2026-116689
access.redhat.com/security/cve/CVE-2026-14242
access.redhat.com/security/cve/CVE-2026-13721
access.redhat.com/security/cve/CVE-2026-110289
access.redhat.com/security/cve/CVE-2026-111024
access.redhat.com/security/cve/CVE-2026-107509
access.redhat.com/security/cve/CVE-2026-110992
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_93601.json
bugzilla.redhat.com/show_bug.cgi?id=2565158
cve.org/CVERecord?id=CVE-2026-110289
nvd.nist.gov/vuln/detail/CVE-2026-110289
bugzilla.redhat.com/show_bug.cgi?id=2559880
cve.org/CVERecord?id=CVE-2026-115754
nvd.nist.gov/vuln/detail/CVE-2026-115754
github.com/yahoo/serialize-javascript/commit/2864b3c6260a3bfd52d2db3e70d1a079de108a61
github.com/yahoo/serialize-javascript/pull/235
github.com/yahoo/serialize-javascript/releases/tag/v7.1.3
github.com/yahoo/serialize-javascript/security/advisories/GHSA-m5mm-p8h7-m29v
vulncheck.com/advisories/serialize-javascript-7.0.1-before-7.1.3-xss-via-unescaped-script-in-function-body
bugzilla.redhat.com/show_bug.cgi?id=2560226
cve.org/CVERecord?id=CVE-2026-115897
nvd.nist.gov/vuln/detail/CVE-2026-115897
bugzilla.redhat.com/show_bug.cgi?id=2562364
cve.org/CVERecord?id=CVE-2026-116689
nvd.nist.gov/vuln/detail/CVE-2026-116689
github.com/follow-redirects/follow-redirects/commit/b0a7751e9cd64cd8eeb6ec67d2f206a9cc88d3f8
github.com/follow-redirects/follow-redirects/releases/tag/v1.16.2
github.com/follow-redirects/follow-redirects/security/advisories/GHSA-mrwp-f3q8-3g9p
access.redhat.com/errata/RHSA-2026:93608
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_93608.json
access.redhat.com/errata/RHSA-2026:94794
access.redhat.com/security/cve/CVE-2026-110910
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_94794.json
bugzilla.redhat.com/show_bug.cgi?id=2561558
cve.org/CVERecord?id=CVE-2026-110910
nvd.nist.gov/vuln/detail/CVE-2026-110910
github.com/ljharb/qs/commit/234d5051f5071efaa025a7ca9e4d34a56a460a1b
github.com/ljharb/qs/issues/626
github.com/ljharb/qs/pull/561
github.com/ljharb/qs/security/advisories/GHSA-w4cr-vjpx-p82q
access.redhat.com/errata/RHSA-2026:95406
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_95406.json
access.redhat.com/errata/RHSA-2026:95617
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_95617.json
access.redhat.com/errata/RHSA-2026:98541
bugzilla.redhat.com/show_bug.cgi?id=2554113
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_98541.json
access.redhat.com/security/cve/CVE-2026-88967
cve.org/CVERecord?id=CVE-2026-88967
nvd.nist.gov/vuln/detail/CVE-2026-88967
access.redhat.com/errata/RHSA-2026:98620
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_98620.json
access.redhat.com/errata/RHSA-2026:98639
bugzilla.redhat.com/show_bug.cgi?id=2563003
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_98639.json
access.redhat.com/security/cve/CVE-2026-100105
cve.org/CVERecord?id=CVE-2026-100105
nvd.nist.gov/vuln/detail/CVE-2026-100105
grafana.com/security/security-advisories/cve-2026-100105
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99020.json
bugzilla.redhat.com/show_bug.cgi?id=2519801
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99030.json
cve.org/CVERecord?id=CVE-2026-17183
nvd.nist.gov/vuln/detail/CVE-2026-17183
grafana.com/security/security-advisories/cve-2026-17183
access.redhat.com/errata/RHSA-2026:99134
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99134.json
access.redhat.com/errata/RHSA-2026:99151
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99151.json
access.redhat.com/errata/RHSA-2026:99152
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99152.json
access.redhat.com/errata/RHSA-2026:99171
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99171.json
access.redhat.com/errata/RHSA-2026:99172
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99172.json
errata.rockylinux.org/RLSA-2026:98541
errata.rockylinux.org/RLSA-2026:98620
errata.rockylinux.org/RLSA-2026:99020
errata.rockylinux.org/RLSA-2026:99030
suse.com/support/update/announcement/2026/suse-su-202624652-1
bugzilla.suse.com/1288500
suse.com/security/cve/CVE-2026-116591
suse.com/support/update/announcement/2026/suse-su-20265195-1
bugzilla.suse.com/1283596
bugzilla.suse.com/1284203
suse.com/security/cve/CVE-2026-63209
ubuntu.com/security/CVE-2026-116591
suse.com/security/cve/CVE-2026-78663
suse.com/security/cve/CVE-2026-78659
suse.com/security/cve/CVE-2026-78660
suse.com/security/cve/CVE-2026-97032
suse.com/security/cve/CVE-2026-109425
suse.com/security/cve/CVE-2026-78661
suse.com/security/cve/CVE-2026-97045
suse.com/security/cve/CVE-2026-116585
bugzilla.suse.com/1288212
bugzilla.suse.com/1288588
bugzilla.suse.com/1239277
bugzilla.suse.com/1283692
bugzilla.suse.com/1288488
suse.com/security/cve/CVE-2025-22868
bugzilla.suse.com/1288460
Left out here: the rest of 2 source descriptions. The JSON record has them. Left out on purpose, here and in the API, to keep responses small: 47 source records.