CVE-2026-96596: erl_tar:extract/2 loops forever on a GNU sparse member with a trailing hole
Noroxi assessment
Priority: Monitor (action score 23/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.21% (FIRST EPSS).
- Someone with local access to the system can trigger it. No account or password is required. No user action is required. No special conditions are required; it is repeatable.
- Fixed version: Erlang OTP 29.1.2, 3086307f311b78b38644a7787a3aca6a3f95a9d5, 8.1.1; erlang rebar3 3.28.0, 310e2ec8c7dd3df05d67af2b7fae23f30fc523c4; hexpm hex 2.5.3, 7847c23d09ab52113614c3718e1e7d368743da5d, 8e1067131a13949eff30623f31648a945ffd5418.
Low priority for now. Upgrade to Erlang OTP 29.1.2, 3086307f311b78b38644a7787a3aca6a3f95a9d5, 8.1.1; erlang rebar3 3.28.0, 310e2ec8c7dd3df05d67af2b7fae23f30fc523c4; hexpm hex 2.5.3, 7847c23d09ab52113614c3718e1e7d368743da5d, 8e1067131a13949eff30623f31648a945ffd5418 or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Erlang OTP stdlib (erl_tar module), hexpm hex_core (hex_erl_tar module), hexpm hex (mix_hex_erl_tar module) and erlang rebar3 (r3_hex_erl_tar module) allows an attacker who supplies a tar archive to cause a denial of service via a crafted GNU sparse member. When erl_tar:extract/1,2 writes a member to disk, erl_tar:stream_to_file_loop/3 reads it in chunks of 65536 bytes by default. For a GNU sparse member whose sparse map ends before its real size, erl_tar:do_sparse_read/3 matches its trailing-hole clause before its zero-length clause. After the chunk is used up, the trailing-hole clause reads zero bytes, does not advance the position, and recurses forever. A 2048-byte archive keeps the extracting process and one scheduler busy until the process is killed. The {max_size, N} option prevents this only when N is below the real size of the member. Extraction with the memory option is not affected. hex_core ships its own copy of erl_tar as hex_erl_tar, and Hex and rebar3 ship hex_core with prefixed module names (mix_hex_erl_tar and r3_hex_erl_tar). These copies contain the same code and do not call stdlib's erl_tar, so they are affected on any OTP version. OTP 28 is not affected, but an application running on OTP 28 is affected if it extracts archives through an affected version of hex_core, Hex or rebar3. This issue affects OTP from OTP 29.0 before OTP 29.1.2, corresponding to rebar3 from 3.27.1 before 3.28.0, and stdlib from 8.0 before 8.1.1, and hex from 2.4.2 before 2.5.3; hex_core: from 0.14.0 before 0.20.1.
- Published
- Oct 14, 2026
- Updated
- Oct 22, 2026
- EPSS
- 0.2% · 11th percentile
- CWE
- CWE-835
Report tools
Action score
23
Monitor
Low priority for now.
- CVSS
- 23 / 40 · 5.9 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.2%
CISA SSVC decision
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
Vulnrichment: CISA's decision-tree inputs.
CNA vs NVD score
- NVD
- —
- CNA · EEF
- 5.9
- NVD has not scored this yet; the score shown is the CNA’s.
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Running WordPress? Scan your site free with WP Lens
Noroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
—
Versions reported by the vendor
Affected version ranges reported by the assigning authority (EEF). Independent of NVD's CPE analysis and usually ahead of it.
erlang rebar3
- 3.27.1 and later · before 3.28.0affected · semver
- 23dbdb5d1f87f56902aef296c88a20049cd0c6e4 and later · before 310e2ec8c7dd3df05d67af2b7fae23f30fc523c4affected · git
Erlang OTP
- 29.0 and later · before 29.1.2affected · otp
- 8.0 and later · before 8.1.1affected · otp
- fbf2c7194f6fce4b7b66dc0bcaa4f6b4b85e088f and later · before 3086307f311b78b38644a7787a3aca6a3f95a9d5affected · git
hexpm hex
- 2.4.2 and later · before 2.5.3affected · semver
- 5543a1919c709d8eb2b317f62aad76ca1eed375c and lateraffected · gitfixed in 8e1067131a13949eff30623f31648a945ffd5418, 7847c23d09ab52113614c3718e1e7d368743da5d
hexpm hex_core
- 0.14.0 and later · before 0.20.1affected · semver
- 13bb9fbba418a406af614790b8d5cd458259ee70 and later · before a2ece683e6e88a3ec95ad20b09aca426e08b372eaffected · git
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| Debian:14 | erlang | before 1:29.1.2+dfsg-1 | 1:29.1.2+dfsg-1 |
| Debian:14 | erlang-hex | before 2.5.3-2 | 2.5.3-2 |
| Hex | hex_core | from 0.14.0 · before 0.20.1 | 0.20.1 |
Same product
erlang: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-89422TLS 1.3 client skips server authentication when ServerHello carries an unsolicited pre_shared_key extension37Monitor
- CVE-2026-74835inets,httpd: Memory Exhaustion via Unenforced max_body_size During Chunked Body Reception34Monitor
- CVE-2026-71380httpd applies no timeout while receiving a request body, parking a worker on a stalled client34Monitor
Published before and after this one in the same product
- ← EarlierCVE-2026-68956Sep 22, 2026 · SSH daemon allocates unbounded idle session channels, bypassing max_channels28Monitor
- ← EarlierCVE-2026-105236Oct 14, 2026 · TLS 1.2 session resumption in ssl crosses SNI virtual-host client-certificate trust boundaries25Monitor
- ← EarlierCVE-2026-94200Oct 14, 2026 · TLS 1.3 client ticket store crashed by NewSessionTicket with empty early_data extension in ssl32Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Erlang OTP | 29.1.2 | Vendor (CNA) |
| Erlang OTP | 3086307f311b78b38644a7787a3aca6a3f95a9d5 | Vendor (CNA) |
| Erlang OTP | 8.1.1 | Vendor (CNA) |
| erlang rebar3 | 3.28.0 | Vendor (CNA) |
| erlang rebar3 | 310e2ec8c7dd3df05d67af2b7fae23f30fc523c4 | Vendor (CNA) |
| hexpm hex | 2.5.3 | Vendor (CNA) |
| hexpm hex | 7847c23d09ab52113614c3718e1e7d368743da5d | Vendor (CNA) |
| hexpm hex | 8e1067131a13949eff30623f31648a945ffd5418 | Vendor (CNA) |
| hexpm hex_core | 0.20.1 | Vendor (CNA) |
| hexpm hex_core | a2ece683e6e88a3ec95ad20b09aca426e08b372e | Vendor (CNA) |
| debian:erlang | 1:29.1.2+dfsg-1 · Debian:14 | Package registry (OSV) |
| debian:erlang-hex | 2.5.3-2 · Debian:14 | Package registry (OSV) |
| Hex:hex_core | 0.20.1 | Package registry (OSV) |
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
- Published
- Fix recordedsame day
- TodayNov 10, 2026+27 d
FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).
Patch and commit links
Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.
Credits
All researchersFinders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.
- Eric Meadows-Jönssonfinder
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
No nightly-computed relations.
Chain candidates
An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.
—
Bug bounty scope
No known public program.
Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).
Technical details
Attack conditions
- Someone with local access to the system can trigger it.
- No account or password is required.
- No user action is required.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- Integrity
- Availability
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- X
Weakness class (CWE)
CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')CVSS vector
CVSS:4.0/AV:L/AC:L/AT:P/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
nvd-secondary
Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log
- SSVC exploitation— → none
- Exploit maturity— → none
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (12 more)Show less
- github.com/erlang/otp/commit/3086307f311b78b38644a7787a3aca6a3f95a9d5
- github.com/erlang/otp/commit/fbf2c7194f6fce4b7b66dc0bcaa4f6b4b85e088f
- github.com/erlang/otp/security/advisories/GHSA-phm5-m6cj-5382
- github.com/erlang/rebar3/commit/23dbdb5d1f87f56902aef296c88a20049cd0c6e4
- github.com/erlang/rebar3/commit/310e2ec8c7dd3df05d67af2b7fae23f30fc523c4
- github.com/hexpm/hex/commit/5543a1919c709d8eb2b317f62aad76ca1eed375c
- github.com/hexpm/hex/commit/7847c23d09ab52113614c3718e1e7d368743da5d
- github.com/hexpm/hex/commit/8e1067131a13949eff30623f31648a945ffd5418
- github.com/hexpm/hex_core/commit/13bb9fbba418a406af614790b8d5cd458259ee70
- github.com/hexpm/hex_core/commit/a2ece683e6e88a3ec95ad20b09aca426e08b372e
- osv.dev/vulnerability/EEF-CVE-2026-96596
- www.erlang.org/doc/system/versions.html#order-of-versions
Vendor advisories and official records. Exploit/PoC links are deliberately left out.