Skip to content
Fencer Intel
low 2.1

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

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 Fencer

Vendor 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-rhel9
    +24 more products
    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
    affected: no fix available “Fix deferred”

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

Weakness
  • CWE-409 Improper Handling of Highly Compressed Data (Data Amplification)
  • CWE-770 Allocation of Resources Without Limits or Throttling

References

Sources

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.