Description
node-tar is a tar archive manipulation library for Node.js. Prior to 7.5.21, node-tar's filesFilter in src/list.ts uses the recursive mapHas helper to walk an archive entry path upward with path.dirname() and no segment cap when tar.t(...) or tar.x(...) receives a non-empty member-selection list. A crafted GNU L or PAX x long-path header with thousands of slash-separated segments reaches this.filter(entry.path, entry) in Parser[CONSUMEHEADER] in src/parse.ts before Unpack[CHECKPATH] applies maxDepth, causing an uncatchable RangeError stack overflow that terminates asynchronous and streaming Node.js consumers. This issue is fixed in version 7.5.21.
Published: 2026-08-13
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw lies in node‑tar's filesFilter routine, which traverses an archive member's path recursively without limiting the depth when a member‑selection list is supplied. A crafted TAR archive containing an extremely long path with thousands of slashes can trigger a recursion that exhausts the call stack, causing a RangeError that terminates any asynchronous or streaming consumer. The resulting crash is uncatchable, leading to a denial‑of‑service on the Node.js process. The weakness is a classic uncontrolled recursion (CWE‑674) that also results in uncontrolled resource consumption (CWE‑400) and maximum resource consumption (CWE‑770).

Affected Systems

Any project that depends on the node‑tar library prior to version 7.5.21 is vulnerable. The library, maintained by isaacs, is widely used in Node.js projects that extract or manipulate tar archives. Applications that perform member selection during extraction are especially at risk.

Risk and Exploitability

The CVSS score of 7.5 indicates a high potential for disruption. The EPSS score of <1% indicates that exploit attempts are statistically unlikely in the general population, but the vulnerability can still be triggered by an attacker who can deliver a malicious tar file to the application. Because the stack overflow is uncatchable, the Node.js process terminates, resulting in a denial‑of‑service. The vulnerability is not listed in CISA’s KEV catalog, but the high severity and the availability of a fix in version 7.5.21 mean that systems should still address the issue promptly.

Generated by OpenCVE AI on August 15, 2026 at 02:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade node-tar to version 7.5.21 or later, which removes the uncontrolled recursion.
  • Avoid using member‑selection filters with untrusted tar input; if necessary, disable the filter or provide an empty list.
  • Validate tar input before extraction, rejecting entries with paths that exceed a reasonable segment count or length, to prevent stack overflows.

Generated by OpenCVE AI on August 15, 2026 at 02:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-r292-9mhp-454m node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
History

Tue, 18 Aug 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 15 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

threat_severity

Important


Fri, 14 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Isaacs
Isaacs tar
Vendors & Products Isaacs
Isaacs tar

Thu, 13 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Description node-tar is a tar archive manipulation library for Node.js. Prior to 7.5.21, node-tar's filesFilter in src/list.ts uses the recursive mapHas helper to walk an archive entry path upward with path.dirname() and no segment cap when tar.t(...) or tar.x(...) receives a non-empty member-selection list. A crafted GNU L or PAX x long-path header with thousands of slash-separated segments reaches this.filter(entry.path, entry) in Parser[CONSUMEHEADER] in src/parse.ts before Unpack[CHECKPATH] applies maxDepth, causing an uncatchable RangeError stack overflow that terminates asynchronous and streaming Node.js consumers. This issue is fixed in version 7.5.21.
Title node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
Weaknesses CWE-400
CWE-674
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-21T19:08:31.345Z

Reserved: 2026-08-12T20:53:46.381Z

Link: CVE-2026-73566

cve-icon Vulnrichment

Updated: 2026-08-18T01:27:54.012Z

cve-icon NVD

Status : Received

Published: 2026-08-13T18:18:19.250

Modified: 2026-08-18T02:17:29.253

Link: CVE-2026-73566

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-13T17:39:05Z

Links: CVE-2026-73566 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T02:30:16Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-674

    Uncontrolled Recursion

  • CWE-770

    Allocation of Resources Without Limits or Throttling