CVE-2026-105280
Hex writes unverified package tarballs to standard output in mix hex.package fetch
- State
- Published
- Severity
- 6.9 Medium
- Published
- Oct 12, 2026
- Updated
- Oct 16, 2026
- Reserved
- Oct 8, 2026
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.
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 4.0 | 6.9 Medium | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N | EEF |
Weaknesses
- CWE-354 Improper Validation of Integrity Check Value
Affected Products
| Product | Versions |
|---|---|
hexhexpm |
|
hexhexpm |
|
References
- GitHub Advisoryrelatedvendor-advisory
- EEF CNA record for CVE-2026-105280related
- OSV record EEF-CVE-2026-105280related
- Introducing commit d1f5a08 in hexpm/hexrelated
- Fix commit 8a14632 in hexpm/hexpatch
- Fix commit 69489f8 in hexpm/hexpatch
Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.