CVE-2026-73566
node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
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.
- Record
CVE-2026-73566- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-674
- Updated
- 2026-11-02
EUVDEUVD-2026-58181
7.5
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.
- Record
EUVD-2026-58181- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-r292-9mhp-454m
7.5
node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
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 Concept
// Build a tar whose single entry has a GNU-L long path of ~12,000 "a/" segments (~26 KB),
// gzip it (≈188 bytes), then have a consumer list/extract with member selection:
const tar = require('tar');
await tar.t({ file: 'evil.tar.gz', gzip: true }, ['some-member']); // -> RangeError, process exit
Empirically reproduced on Node v24.18.0 against built dist/commonjs of node-tar 7.5.20: 188-byte gzip → 26,112-byte tar (12,000 segments) → uncaught RangeError: Maximum call stack size exceeded → process exit. A control run with no member-selection list (filter not installed) parses cleanly (exit 0), isolating mapHas as the sole cause.
Attack Chain
- Entry. Attacker crafts a tar with a GNU
L(or PAXx) long-path header whose body is"a/"×~12000 (~26 KB), followed by a normal file entry.- Guard:
maxMetaEntrySizecaps the meta body at 1 MiB (src/parse.ts:241). - Bypass proof: 26 KB ≪ 1 MiB → accepted (verified: 26 KB archive parsed up to the filter).
- Guard:
- Trigger. Victim service calls
tar.t({file},[sel])ortar.x({file,cwd},[sel])(member selection — a documented, common API).- Guard:
Unpack.maxDepth(default 1024) atsrc/unpack.ts:342; decompression-ratio guard. - Bypass proof:
maxDepthlives in[CHECKPATH]on the'entry'event, which fires afterCONSUMEHEADER's filter call — the crash occurs before it (extract exits 1 with default maxDepth).tar.thas no maxDepth. Ratio is ~139× (trivial); no total-bytes cap applies to the uncompressed meta body.
- Guard:
- Sink.
this.filter(entry.path)→mapHasrecurses once per/segment (src/list.ts:39).- Guard: try/catch in
CONSUMEHEADER. - Bypass proof: the only try/catch wraps
new Header(src/parse.ts:179-183); thethis.filter(...)call atsrc/parse.ts:253is outside it. TheRangeError…
- Guard: try/catch in
- Record
GHSA-r292-9mhp-454m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-674
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-73566- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-674
- Updated
- 2026-11-02
OSV
7.5
node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
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.
- Record
CVE-2026-73566- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-674
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-73566
7.5
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.
- Record
DEBIAN-CVE-2026-73566- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 11 moreShow less
OSVGHSA-r292-9mhp-454m
7.5
node-tar: Uncontrolled recursion in mapHas/filesFilter allows uncatchable stack-overflow DoS via crafted long-path tar with member selection
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 Concept
// Build a tar whose single entry has a GNU-L long path of ~12,000 "a/" segments (~26 KB),
// gzip it (≈188 bytes), then have a consumer list/extract with member selection:
const tar = require('tar');
await tar.t({ file: 'evil.tar.gz', gzip: true }, ['some-member']); // -> RangeError, process exit
Empirically reproduced on Node v24.18.0 against built dist/commonjs of node-tar 7.5.20: 188-byte gzip → 26,112-byte tar (12,000 segments) → uncaught RangeError: Maximum call stack size exceeded → process exit. A control run with no member-selection list (filter not installed) parses cleanly (exit 0), isolating mapHas as the sole cause.
Attack Chain
- Entry. Attacker crafts a tar with a GNU
L(or PAXx) long-path header whose body is"a/"×~12000 (~26 KB), followed by a normal file entry.- Guard:
maxMetaEntrySizecaps the meta body at 1 MiB (src/parse.ts:241). - Bypass proof: 26 KB ≪ 1 MiB → accepted (verified: 26 KB archive parsed up to the filter).
- Guard:
- Trigger. Victim service calls
tar.t({file},[sel])ortar.x({file,cwd},[sel])(member selection — a documented, common API).- Guard:
Unpack.maxDepth(default 1024) atsrc/unpack.ts:342; decompression-ratio guard. - Bypass proof:
maxDepthlives in[CHECKPATH]on the'entry'event, which fires afterCONSUMEHEADER's filter call — the crash occurs before it (extract exits 1 with default maxDepth).tar.thas no maxDepth. Ratio is ~139× (trivial); no total-bytes cap applies to the uncompressed meta body.
- Guard:
- Sink.
this.filter(entry.path)→mapHasrecurses once per/segment (src/list.ts:39).- Guard: try/catch in
CONSUMEHEADER. - Bypass proof: the only try/catch wraps
new Header(src/parse.ts:179-183); thethis.filter(...)call atsrc/parse.ts:253is outside it. TheRangeError…
- Guard: try/catch in
- Record
GHSA-r292-9mhp-454m- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-400, CWE-674
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-73566
7.5
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.
- Record
UBUNTU-CVE-2026-73566- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1784856442 No score
TuxCare security update for tar (1 CVE)
TuxCare rebuilt tar to address 1 CVE. Fixed in 6.2.1-tuxcare.5.
- Record
CLSA-2026-1784856442- Updated
- 2026-11-02
OSVCLSA-2026-1792074268 No score
TuxCare security update for tar (8 CVEs)
TuxCare rebuilt tar to address 8 CVEs. Fixed in 6.2.0-tuxcare.5.
- Record
CLSA-2026-1792074268- Updated
- 2026-11-02
OSVCLSA-2026-1792074305 No score
TuxCare security update for tar (12 CVEs)
TuxCare rebuilt tar to address 12 CVEs. Fixed in 6.0.2-tuxcare.6.
- Record
CLSA-2026-1792074305- Updated
- 2026-11-02
OSVCLSA-2026-1792164769 No score
TuxCare security update for tar (2 CVEs)
TuxCare rebuilt tar to address 2 CVEs. Fixed in 7.5.18-tuxcare.1.
- Record
CLSA-2026-1792164769- Updated
- 2026-11-02
OSVCLSA-2026-1793101936 No score
TuxCare security update for tar (6 CVEs)
TuxCare rebuilt tar to address 6 CVEs. Fixed in 6.1.0-tuxcare.3.
- Record
CLSA-2026-1793101936- Updated
- 2026-11-02
OSVCLSA-2026-1793102032 No score
TuxCare security update for tar (5 CVEs)
TuxCare rebuilt tar to address 5 CVEs. Fixed in 6.1.6-tuxcare.2.
- Record
CLSA-2026-1793102032- Updated
- 2026-11-02
OSVCLSA-2026-1793307830 No score
TuxCare security update for tar (11 CVEs)
TuxCare rebuilt tar to address 11 CVEs. Fixed in 4.4.19-tuxcare.5.
- Record
CLSA-2026-1793307830- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-73566 No score
CVE-2026-73566 in tar - Patched by Root
Root has patched CVE-2026-73566 in the tar package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-73566- Updated
- 2026-11-03
OSVROOT-APP-NPM-GHSA-r292-9mhp-454m No score
GHSA-r292-9mhp-454m in tar - Patched by Root
Root has patched GHSA-r292-9mhp-454m in the tar package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-GHSA-r292-9mhp-454m- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tarnpm |
through 7.5.20 | 7.5.21 |
tarTuxCare:npm |
6.2.1-tuxcare.0 up to 6.2.1-tuxcare.5, plus listed versions 6.2.16.2.1-tuxcare.16.2.1-tuxcare.26.2.1-tuxcare.36.2.1-tuxcare.4 |
6.2.1-tuxcare.5 |
tarTuxCare:npm From an advisory covering 7 CVEs |
6.2.0-tuxcare.0 up to 6.2.0-tuxcare.5, plus listed versions 6.2.06.2.0-tuxcare.16.2.0-tuxcare.26.2.0-tuxcare.36.2.0-tuxcare.4 |
6.2.0-tuxcare.5 |
tarTuxCare:npm From an advisory covering 11 CVEs |
6.0.2-tuxcare.0 up to 6.0.2-tuxcare.6, plus listed versions 6.0.26.0.2-tuxcare.16.0.2-tuxcare.26.0.2-tuxcare.36.0.2-tuxcare.46.0.2-tuxcare.5 |
6.0.2-tuxcare.6 |
tarTuxCare:npm From an advisory covering 2 CVEs |
7.5.18-tuxcare.0 up to 7.5.18-tuxcare.1, plus listed versions 7.5.18 |
7.5.18-tuxcare.1 |
tarTuxCare:npm From an advisory covering 6 CVEs |
6.1.0-tuxcare.0 up to 6.1.0-tuxcare.3, plus listed versions 6.1.06.1.0-tuxcare.16.1.0-tuxcare.2 |
6.1.0-tuxcare.3 |
tarTuxCare:npm From an advisory covering 5 CVEs |
6.1.6-tuxcare.0 up to 6.1.6-tuxcare.2, plus listed versions 6.1.66.1.6-tuxcare.1 |
6.1.6-tuxcare.2 |
tarTuxCare:npm From an advisory covering 10 CVEs |
4.4.19-tuxcare.0 up to 4.4.19-tuxcare.5, plus listed versions 4.4.194.4.19-tuxcare.14.4.19-tuxcare.24.4.19-tuxcare.34.4.19-tuxcare.4 |
4.4.19-tuxcare.5 |
node-tarDebian:12 |
All versions, plus listed versions 6.1.13+~cs7.0.5-16.1.13+~cs7.0.5-1+deb12u16.1.13+~cs7.0.5-26.1.13+~cs7.0.5-36.1.13+~cs7.0.5-4 Show 17 moreShow less6.2.1+ds1+~cs6.1.13-16.2.1+ds1+~cs6.1.13-106.2.1+ds1+~cs6.1.13-116.2.1+ds1+~cs6.1.13-26.2.1+ds1+~cs6.1.13-36.2.1+ds1+~cs6.1.13-46.2.1+ds1+~cs6.1.13-56.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-86.2.1+ds1+~cs6.1.13-96.2.1+~cs7.0.8-17.5.16+~4.0.1-17.5.16+~4.0.1-27.5.19+~4.0.1-17.5.19+~4.0.1-27.5.22+~4.0.1-1 |
None known |
node-tarDebian:13 |
All versions, plus listed versions 6.2.1+ds1+~cs6.1.13-16.2.1+ds1+~cs6.1.13-106.2.1+ds1+~cs6.1.13-116.2.1+ds1+~cs6.1.13-26.2.1+ds1+~cs6.1.13-3 Show 13 moreShow less6.2.1+ds1+~cs6.1.13-46.2.1+ds1+~cs6.1.13-56.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-86.2.1+ds1+~cs6.1.13-96.2.1+~cs7.0.8-16.2.1+~cs7.0.8-1+deb13u17.5.16+~4.0.1-17.5.16+~4.0.1-27.5.19+~4.0.1-17.5.19+~4.0.1-27.5.22+~4.0.1-1 |
None known |
Show 14 moreShow less
| Package | Affected | Fixed |
|---|---|---|
node-tarDebian:14 |
before 7.5.22+~4.0.1-1, plus listed versions 6.2.1+ds1+~cs6.1.13-16.2.1+ds1+~cs6.1.13-106.2.1+ds1+~cs6.1.13-116.2.1+ds1+~cs6.1.13-26.2.1+ds1+~cs6.1.13-3 Show 11 moreShow less6.2.1+ds1+~cs6.1.13-46.2.1+ds1+~cs6.1.13-56.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-86.2.1+ds1+~cs6.1.13-96.2.1+~cs7.0.8-17.5.16+~4.0.1-17.5.16+~4.0.1-27.5.19+~4.0.1-17.5.19+~4.0.1-2 |
7.5.22+~4.0.1-1 |
tarnpm |
before 7.5.21 | 7.5.21 |
tarRoot:npm |
before 6.1.11-aikido.10 | 6.1.11-aikido.107.5.11-aikido.47.5.1-aikido.127.5.19-aikido.17.5.15-aikido.44.4.19-aikido.76.2.1-aikido.127.5.9-aikido.67.5.16-aikido.26.1.13-aikido.56.1.14-aikido.67.4.3-aikido.117.5.11-aikido.37.5.13-aikido.36.1.13-aikido.66.1.13-aikido.76.1.13-aikido.87.4.3-aikido.124.4.13-aikido.16.2.0-aikido.116.1.15-aikido.47.5.7-aikido.57.5.7-aikido.6 |
@rootio/tarRoot:npm |
before 6.1.11-root.io.10 | 6.1.11-root.io.107.5.11-root.io.47.5.1-root.io.127.5.19-root.io.17.5.15-root.io.44.4.19-root.io.76.2.1-root.io.127.5.9-root.io.67.5.16-root.io.26.1.13-root.io.56.1.14-root.io.67.4.3-root.io.117.5.11-root.io.37.5.13-root.io.36.1.13-root.io.66.1.13-root.io.76.1.13-root.io.87.4.3-root.io.124.4.13-root.io.16.2.0-root.io.116.1.15-root.io.47.5.7-root.io.57.5.7-root.io.6 |
tarRoot:npm |
before 7.5.11-aikido.4 | 7.5.11-aikido.4 |
@rootio/tarRoot:npm |
before 7.5.11-root.io.4 | 7.5.11-root.io.4 |
node-tarUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 0.1.18-10.1.18-1ubuntu0.1~esm1 |
None known |
node-tarUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.0.3-21.0.3-2ubuntu0.1~esm1 |
None known |
node-tarUbuntu:18.04:LTS |
All versions, plus listed versions 2.2.1-1 |
None known |
node-tarUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 4.4.10+ds1-24.4.10+ds1-2ubuntu14.4.10+ds1-2ubuntu1+esm1 |
None known |
node-tarUbuntu:22.04:LTS |
All versions, plus listed versions 6.1.7+~cs11.3.10-16.1.11+~cs11.3.10-16.1.11+ds1+~cs6.0.6-1 |
None known |
node-tarUbuntu:24.04:LTS |
All versions, plus listed versions 6.1.13+~cs7.0.5-16.1.13+~cs7.0.5-3 |
None known |
node-tarUbuntu:26.10 |
All versions, plus listed versions 6.2.1+ds1+~cs6.1.13-107.5.22+~4.0.1-1 |
None known |
node-tarUbuntu:26.04:LTS |
All versions, plus listed versions 6.2.1+~cs7.0.8-16.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-10 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-73566 is a high vulnerability (CVSS 7.5) in Isaacs Node-tar, published July 24, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.53%, the 45th percentile. Fixed in tar 7.5.21.
References
github.com/isaacs/node-tar/security/advisories/GHSA-r292-9mhp-454m
github.com/isaacs/node-tar/commit/631ae59121bf8fc8a22bbae35f074cb9b789cd4a
github.com/isaacs/node-tar/releases/tag/v7.5.21
nvd.nist.gov/vuln/detail/CVE-2026-73566
github.com/advisories/GHSA-r292-9mhp-454m
github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73566.json
Left out here: the rest of 2 source descriptions. The JSON record has them.