CVE-2026-96618 json
Hex exhausts memory and disk on oversized or compressed responses from an untrusted mirror
published 30d ago modified 14h ago also EUVD-2026-97500 , GHSA-gf42-pg2f-63jp
Unreviewed: the maintainers' own advisory
Published by the maintainers on their GitHub repository hexpm/hex. GitHub has not reviewed it into the GitHub Advisory Database, so the affected packages and versions are the maintainers' word. Read the full advisory on GitHub.
- cvss
- 2.1
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 29%
- public exploits
- 0
- none known
Summary
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in hexpm hex allows an untrusted package mirror to exhaust the memory or disk space of the machine running mix deps.get, mix deps.update, mix hex.package fetch or mix hex.docs fetch.
Hex treats a mirror configured with HEX_MIRROR_URL, HEX_MIRROR or mirror_url as untrusted: it doesn't send credentials to it, and it checks registry signatures and package checksums that the mirror can't forge. Several response paths consume memory or disk in proportion to what the mirror sends before any of those checks run.
Hex.HTTP.request/5 reads the whole response body into memory and decompresses it with :zlib.gunzip/1 whenever the response's Content-Encoding contains gzip, with no limit on the compressed or decompressed size. Hex doesn't ask for compressed responses, so the server decides whether this step runs. It applies to registry, package, docs and API responses.
Package tarballs have no download size limit. Hex 2.5.1 holds the whole tarball in memory and writes it to the cache, and the development branch streams it to a temporary file; the 16 MiB tarball limit is checked only when the file is unpacked. The tarball is then unpacked, into deps/<app> in 2.5.1 and into a staging directory on the development branch, before its checksums are compared with the registry.
mix hex.docs fetch, and mix hex.docs offline when docs are missing, write the docs tarball to disk and extract it with :mix_hex_erl_tar.extract/2 without the 16 MiB compressed and 128 MiB decompressed limits that mix_hex_tarball:unpack_docs/3 applies. The signed registry doesn't cover docs tarballs, so nothing checks them.
Registry responses are also decompressed before their signature is checked, in hex_core code that Hex vendors; that part is tracked in https://github.com/hexpm/hex_core/security/advisories/GHSA-7c4r-cgf9-9jmq.
This issue affects hex: from 0.11.2 before 2.5.2.
Patch / fix
- hexpm hex 2.5.2
- erlang-hex Debian 14 2.5.3-2
debian advisories DEBIAN-CVE-2026-96618
- github.com/hexpm/hex@51ea632 commit
- github.com/hexpm/hex@bb5189e commit
- github.com/hexpm/hex@0895610 commit
Is CVE-2026-96618 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-96618 updated cvss 4.3
hex: hex: Denial of Service via unconstrained data decompression
-
Red Hat Ansible Automation Orchestrator 2026 ansible-automation-platform/automation-orchestrator-backend-rhel9 Red Hat Confidential Cluster Operator confidential-clusters-beta/compute-pcrs-rhel9, confidential-clusters-beta/registration-server-rhel9, confidential-clusters-beta/attestation-key-register-rhel9, confidential-clusters-beta/confidential-cluster-rhel9-operator, confidential-clusters-beta/confidential-cluster-operator-bundle Red Hat Confidential Compute Attestation build-of-trustee/trustee-rhel9, agent-sandbox/agent-sandbox-router, openshift-sandboxed-containers/osc-podvm-builder-rhel9, openshift-sandboxed-containers/osc-podvm-payload-rhel9 Red Hat Lightspeed Services for Advanced Cluster Management lightspeed-services-acm/ocp-rules-rhel9 Red Hat Logging Subsystem for Red Hat OpenShift openshift-logging/vector-rhel9 Red Hat OpenShift Lightspeed openshift-lightspeed/lightspeed-ocp-rag-rhel9, openshift-lightspeed/lightspeed-to-dataverse-exporter-rhel9affected: no fix available “Fix deferred”
+24 more productsfewer
Red Hat Pen Drive Powered by Red Hat Lightspeed pen-drive/pen-drive-scanner-rhel9 Red Hat Ansible Automation Platform 2 ansible-automation-platform-26/hub-rhel9, ansible-automation-platform-27/hub-rhel9, ansible-automation-platform-26/gateway-rhel9, ansible-automation-platform-27/gateway-rhel9, ansible-automation-platform-26/mcp-tools-rhel9, ansible-automation-platform-27/mcp-tools-rhel9, +20 more Red Hat Ansible Automation Platform Ansible Core 2 ansible-automation-platform/ee-minimal-rhel8, ansible-automation-platform/ee-minimal-rhel9, ansible-automation-platform-tech-preview/ee-minimal-rhel8, ansible-automation-platform-tech-preview/ee-minimal-rhel9 Red Hat Developer Hub 1 rhdh/rhdh-must-gather-rhel9 Red Hat Discovery 2 discovery/discovery-server-rhel9 Red Hat Enterprise Linux 7 firefox Red Hat Enterprise Linux 8 rls, rust, cargo, clippy, firefox, rustfmt, +15 more Red Hat Enterprise Linux 9 ctdb, rust, bootc, cargo, goose, samba, +73 more Red Hat Enterprise Linux 10 igvm, rust, bootc, goose, loupe, samba, +21 more Red Hat Enterprise Linux AI (RHEL AI) 3 rust Red Hat Enterprise Linux command line assistant rhel-cla/rhel-knowledge-bridge-rhel10 Red Hat Hardened Images rust, chunkah, netavark, openshell Red Hat Lightspeed Services for OCP lightspeed-services-ocp/ocp-rules-rhel9 Red Hat Offline Knowledge Portal offline-knowledge-portal/rhokp-rhel9 Red Hat OpenShift AI (RHOAI) rhoai/odh-feature-server-rhel9, rhai/base-image-torch-2.14-cpu-rhel9, rhai/base-image-torch-2.14-cuda-13.0-rhel9, rhoai/odh-ml-pipelines-runtime-generic-rhel9, rhoai/odh-model-registry-job-async-upload-rhel9 Red Hat OpenShift Container Platform 4 bootupd, afterburn, conmon-rs, rpm-ostree, rust-bootupd, rust-afterburn, +6 more Red Hat OpenShift Container Platform 5 conmon-rs, kata-containers Red Hat OpenShift Update Service openshift-update-service/openshift-update-service-rhel8 Red Hat OpenStack Platform 16.2 rabbitmq-server Red Hat OpenStack Platform 17.1 rabbitmq-server Red Hat Quay 3 quay/quay-rhel8, quay/quay-rhel9 Red Hat Satellite 6 satellite/iop-vmaas-rhel9, satellite/iop-advisor-engine-rhel9, satellite/iop-advisor-backend-rhel9 Red Hat Trusted Artifact Signer rhtas/tuffer-rhel9, rhtas/tuftool-rhel9 Red Hat Trusted Profile Analyzer rhtpa/rhtpa-rhel10, rhtpa/rhtpa-trustification-service-rhel9
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 26d ago
Exploit prediction
0.36% chance of exploitation in the next 30 days, higher than 29% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.1 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
| CNA | 4.0 | 2.1 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:L/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 |
Affected products
- hexpm hex
Classification
References
-
github.com
/hexpm/hex/commit/51ea632424fb6ea8765148f96dc25dfeb526b1f8
related
-
github.com
/hexpm/hex/commit/bb5189eade682c5fc3f98d9725973a7beb4e1deb
patch
-
github.com
/hexpm/hex/commit/08956100a8283ba500a123e5539ac64d5d7e91d8
patch
-
github.com
/hexpm/hex/security/advisories/GHSA-gf42-pg2f-63jp
related, vendor-advisory, advisory
-
cna.erlef.org
/cves/CVE-2026-96618.html
related
-
osv.dev
/vulnerability/EEF-CVE-2026-96618
related
Sources
- CVE List CVE-2026-96618
- NVD CVE-2026-96618
- Maintainer advisory GHSA-gf42-pg2f-63jp
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of hexpm/hex published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.