Description
Improper Validation of Integrity Check Value vulnerability in hexpm hex allows a package mirror to substitute the tarball that mix hex.package fetch PACKAGE VERSION --output - writes to standard output.
Hex compares a fetched tarball's inner and outer checksums with the repository's signed registry before writing it to a file or unpacking it. The standard output branch of mix hex.package fetch writes the bytes returned by Hex.SCM.fetch/3 without that comparison, and Hex.SCM.fetch/3 doesn't verify freshly downloaded tarballs itself. When a mirror configured with HEX_MIRROR_URL or mirror_url serves altered bytes, the command prints them and exits successfully, while the same fetch with --output FILE fails with a checksum mismatch.
Hex also prints diagnostics to standard output while the command runs: the body of a failed HTTP response from the update check or a registry fetch, and API warnings from the x-hex-message header. A mirror that answers one of those requests with an error whose body is a tar archive gets that archive written to standard output ahead of the verified tarball, so a pipeline that unpacks standard output extracts the mirror's files. This happens even when the checksum check then fails, because the archive is already on standard output.
This issue affects hex: from 0.20.2 before 2.5.2.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| hexpm | hex | 0.20.2 – < 2.5.2 | 2.5.2 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | erlang-hex | 2.5.3-2 | — |
| Debian 13 | erlang-hex | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | erlang-hex | No fix yet | — |
| Ubuntu 26.04 LTS | erlang-hex | No fix yet | — |
| Ubuntu 24.04 LTS | erlang-hex | No fix yet | — |
References
- GitHub Advisory related vendor-advisory
- EEF CNA record for CVE-2026-105280 related
- OSV record EEF-CVE-2026-105280 related
- Introducing commit d1f5a08 in hexpm/hex related
- Fix commit 8a14632 in hexpm/hex patch
- Fix commit 69489f8 in hexpm/hex patch