Skip to content
Heist/ feed
Back to feed
High

node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-73566
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 21:16 UTC · Revision 1

Source evidence

node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection

core-osv · Original source

Published 13 Aug 2026, 17:39 UTC

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.

osv:CVE-2026-73566
Complete source record
{
  "id": "48b8f14f84814e0eac3ed57d6c03aaeea2ba078f4087a0ca39657d55b91208cc",
  "url": "https://osv.dev/vulnerability/CVE-2026-73566",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection",
    "summary": "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.",
    "evidence": "osv:CVE-2026-73566",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-73566",
      "aliases": [
        "CVE-2026-73566",
        "GHSA-r292-9mhp-454m"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/isaacs/node-tar",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "0cd9cc3c5814446d3c0cbea6a31d6c00c2c8a9d9"
                },
                {
                  "fixed": "631ae59121bf8fc8a22bbae35f074cb9b789cd4a"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "7.5.21"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "631ae59121bf8fc8a22bbae35f074cb9b789cd4a"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v7.5.20",
            "v7.5.19",
            "v7.5.18",
            "v7.5.17",
            "v7.5.16",
            "v7.5.15",
            "v7.5.14",
            "v7.5.13",
            "v7.5.12",
            "v7.5.11",
            "v7.5.10",
            "v7.5.9",
            "v7.5.8",
            "v7.5.7",
            "v7.5.6",
            "v7.5.5",
            "v7.5.4",
            "v7.5.3",
            "v7.5.2",
            "v7.5.1",
            "v7.5.0",
            "v7.4.4",
            "v7.4.3",
            "v7.4.2",
            "v7.4.1",
            "v7.4.0",
            "v7.3.0",
            "v7.2.0",
            "v7.1.0",
            "v7.0.1",
            "v7.0.0",
            "v6.2.1",
            "v6.2.0",
            "v6.1.15",
            "v6.1.14",
            "v6.1.13",
            "v6.1.12",
            "v6.1.11",
            "v6.1.10",
            "v6.1.9",
            "v6.1.8",
            "v6.1.7",
            "v6.1.6",
            "v6.1.5",
            "v6.1.4",
            "v6.1.3",
            "v6.1.2",
            "v6.1.1",
            "v4.4.13",
            "v5.0.5",
            "v6.1.0",
            "v6.0.5",
            "v6.0.4",
            "v6.0.3",
            "v6.0.2",
            "v6.0.1",
            "v6.0.0",
            "v5.0.2",
            "v5.0.4",
            "v5.0.3",
            "v5.0.1",
            "v4.4.12",
            "v4.4.11",
            "v4.4.10",
            "v4.4.9",
            "v2.2.1",
            "v4.4.8",
            "v4.4.7",
            "v4.4.6",
            "v4.4.5",
            "v4.4.4",
            "v4.4.3",
            "v4.4.2",
            "v4.4.1",
            "v4.4.0",
            "v4.3.3",
            "v4.3.2",
            "v4.3.1",
            "v4.3.0",
            "v4.2.0",
            "v4.1.2",
            "v4.1.1",
            "v4.1.0",
            "v4.0.2",
            "v4.0.1",
            "v3.2.0",
            "v4.0.0",
            "v3.1.15",
            "v3.1.14",
            "v3.1.13",
            "v3.1.12",
            "v3.1.11",
            "v3.1.10",
            "v3.1.9",
            "v3.1.8",
            "v3.1.7",
            "v3.1.6",
            "v3.1.5",
            "v3.1.4",
            "v3.1.3",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.1",
            "v3.0.0",
            "v2.1.1",
            "v2.1.0",
            "v2.0.1",
            "v2.0.0",
            "v1.0.3",
            "v1.0.2",
            "v1.0.1",
            "v1.0.0",
            "v0.1.20",
            "v0.1.19",
            "v0.1.18",
            "v0.1.17",
            "v0.1.16",
            "v0.1.15",
            "v0.1.14",
            "0.1.13",
            "0.1.12",
            "0.1.11",
            "0.1.10",
            "0.1.9",
            "0.1.8",
            "0.1.7",
            "0.1.6",
            "0.1.5",
            "0.1.3",
            "0.1.2",
            "0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-73566.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:23.492265887Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73566.json",
        "https://github.com/isaacs/node-tar/security/advisories/GHSA-r292-9mhp-454m",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-73566",
        "https://github.com/isaacs/node-tar/commit/631ae59121bf8fc8a22bbae35f074cb9b789cd4a"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-400",
          "CWE-674"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73566.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-73566",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 490147,
  "published_at": "2026-08-13T17:39:05.796+00:00"
}