CVE-2026-73566: npm tar stack overflow in mapHas filter with long paths

CVE-2026-73566 · Severity: high · CVSS 7.5 · Published 2026-08-13

npm tar is a utility for reading and writing tar archives, commonly used for extracting package dependencies and processing uploaded files. A crafted tar file with an extremely long file path can trigger an uncontrollable recursive function that crashes the Node.js process, causing denial of service to any application that extracts or lists files with member selection filters applied.

Technologies: tar (npm). Vendors: npm.

Quick answers

Is CVE-2026-73566 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-73566 being exploited in the wild.
How severe is CVE-2026-73566?
High severity, with a CVSS score of 7.5, published 13 August 2026.
Which products and versions are affected?
tar (npm) SEMVER:introduced=0,fixed=7.5.21.
Is there a fix for CVE-2026-73566?
Yes. tar (npm): upgrade to 7.5.21 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-73566 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-73566?
Check whether you run tar (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • tar (npm): upgrade to 7.5.21 or later
    npm install tar@7.5.21

Technical details

The vulnerability is an uncontrolled recursion stack-exhaustion flaw in the mapHas helper function used by filesFilter (src/list.ts). When tar.t() or tar.x() is called with a non-empty member-selection list, a filter is installed that recursively walks file paths using path.dirname() with no segment limit. An attacker can craft a tar archive containing a GNU-L or PAX-x long-path header with tens of thousands of "/" segments (up to 1 MiB). The filter invocation occurs inside Parser[CONSUMEHEADER] at src/parse.ts:253, outside the only try/catch block, causing an uncatchable RangeError that terminates the process. A ~188-byte gzip-compressed archive (≈26 KB uncompressed) is sufficient to trigger the crash on both async and streaming consumers.

Affected products

  • npm tar <=7.5.20

Identifiers

  • CVE-2026-73566
  • GHSA-r292-9mhp-454m

Timeline

  • 2026-07-24: disclosed
  • 2026-07-21: patched: Fixed in version 7.5.21

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.