CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

CVE-2026-73566

highCVSS 7.5covered by 3 sourcesfirst seen 2026-07-24
Summary node-tar (npm tar) contains an uncontrolled-recursion stack-exhaustion DoS in the internal mapHas helper used by filesFilter. When a consumer calls tar.t(...) or tar.x(...) with a non-empty member-selection list, node-tar installs a filter that closes over the recursive mapHas (src/list.ts:33-44). mapHas walks an entry path upward one path.dirname() call per recursion with no segment cap. A single crafted tar with a GNU-L (or PAX-x) long-path header can deliver a path of tens of thousands of /-separated segments (up to maxMetaEntrySize = 1 MiB). The recursion overflows the call stack, throwing an uncatchable RangeError that terminates the Node process on async/streaming consumers. Root Cause filesFilter (src/list.ts:27-51) is installed whenever a caller passes a member-selection list (src/list.ts:119-122, src/extract.ts:55-57). Its filter is invoked at src/parse.ts:253 (entry.ignore = entry.ignore || !this.filter(entry.path, entry)) inside Parser[CONSUMEHEADER] — and crucially outside the only try/catch in that method (which wraps new Header at src/parse.ts:179-183). mapHas recurses once per path segment with no depth limit. The Unpack maxDepth guard (src/unpack.ts:342, in [CHECKPATH]) only runs on the 'entry' event, which fires *after* CONSUMEHEADER has already invoked the filter — so the stack overflows before any depth guard executes. tar.t (list) has no maxDepth at all. Impact Unauthenticated, remotely-triggerable denial of service: a ~188-byte gzip (≈26 KB tar) crashes any service that lists or extracts *selected members* from an untrusted archive (package registries, CI artifact/cache restore, upload processors). On async (await tar.t(...)/tar.x(...)) and streaming/pipe consumers the RangeError escapes the promise as an uncaughtException and terminates the process — standard defensive try/catch around the async call does NOT prevent it. (The synchronous API is catchable; the async/stream paths — the dominant server pattern — are not.) Proof of Conce

CSIRTS triage

What
node-tar contains uncontrolled recursion in mapHas/filesFilter functions that allows stack-overflow denial of service via crafted tar files with long paths and member selection.
Who is affected
Applications using node-tar to extract or process tar archives from untrusted sources.
Urgency
High severity (CVSS 7.5) and not exploited; update promptly to prevent DoS attacks on archive processing pipelines.
Action
Upgrade node-tar to a patched version that implements recursion depth limits or iterative algorithms in file filtering.

AI-assisted analysis generated from the source advisory — verify against the original.

⚡ Watch CVE-2026-73566

Get an email if CVE-2026-73566 is added to CISA KEV, gains public exploit code, or a new advisory cites it — max one per day, one-click unsubscribe.

Exploitation outlook

Advisory coverage (3)

External references

NVD record for CVE-2026-73566

CVE.org record

Embed the live status

CVE-2026-73566 live status badge — this badge updates automatically when the KEV or exploit status changes. How to embed it →

[![CVE-2026-73566 status](https://www.csirts.com/badge/CVE-2026-73566)](https://www.csirts.com/cve/CVE-2026-73566)