Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

node-tar has Arbitrary File Read/Write via Hardlink Target Escape Through Symlink Chain in Extraction

CVSS 3.1 7.1 HIGHEUVD CVSS 3.1 7.1 CVSS 3.1 · [email protected] · Secondary 7.1 HIGHCVSS 3.1 · [email protected] · Primary 7.1 HIGHCVSS_V3 Publisher rating HIGHFixed by tar 7.5.8KEV status unknown

cve-program · CVE-2026-26960

Published

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Read the publisher's advisory

euvd · EUVD-2026-8399

Published

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Read the publisher's advisory

nvd · CVE-2026-26960

Published

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Read the publisher's advisory

osv · GHSA-83g3-92jg-28cx

Published

### Summary `tar.extract()` in Node `tar` allows an attacker-controlled archive to create a hardlink inside the extraction directory that points to a file outside the extraction root, using default options. This enables **arbitrary file read and write** as the extracting user (no root, no chmod, no `preservePaths`). Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. ### Details The bypass chain uses two symlinks plus one hardlink: 1. `a/b/c/up -> ../..` 2. `a/b/escape -> c/up/../..` 3. `exfil` (hardlink) -> `a/b/escape/<target-relative-to-parent-of-extract>` Why this works: - Linkpath checks are string-based and do not resolve symlinks on disk for hardlink target safety. - See `STRIPABSOLUTEPATH` logic in: - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:255` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:268` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:281` - Hardlink extraction resolves target as `path.resolve(cwd, entry.linkpath)` and then calls `fs.link(target, destination)`. - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:566` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:567` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:703` - Parent directory safety checks (`mkdir` + symlink detection) are applied to the destination path of the extracted entry, not to the resolved hardlink target path. - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:617` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:619` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/mkdir.js:27` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/mkdir.js:101` As a result, `exfil` is created inside extraction root but linked to an external file. The PoC confirms shared inode and successful read+write via `exfil`. ### PoC [hardlink.js](https://github.com/user-attachments/files/25240082/hardlink.js) Environment used for validation: - Node: `v25.4.0` - tar: `7.5.7` - OS: macOS Darwin 25.2.0 - Extract options: defaults (`tar.extract({ file, cwd })`) Steps: 1. Prepare/locate a `tar` module. If `require('tar')` is not available locally, set `TAR_MODULE` to an absolute path to a tar package directory. 2. Run: ```bash TAR_MODULE="$(cd '../tar-audit-setuid - CVE/node_modules/tar' && pwd)" node hardlink.js ``` 3. Expected vulnerable output (key lines): ```text same_inode=true read_ok=true write_ok=true result=VULNERABLE ``` Interpretation: - `same_inode=true`: extracted `exfil` and external secret are the same file object. - `read_ok=true`: reading `exfil` leaks external content. - `write_ok=true`: writing `exfil` modifies external file. ### Impact Vulnerability type: - Arbitrary file read/write via archive extraction path confusion and link resolution. Who is impacted: - Any application/service that extracts attacker-controlled tar archives with Node `tar` defaults. - Impact scope is the privileges of the extracting process user. Potential outcomes: - Read sensitive files reachable by the process user. - Overwrite writable files outside extraction root. - Escalate impact depending on deployment context (keys, configs, scripts, app data).

Read the publisher's advisory

Affected versions, risk and source history

Exploitation and risk

Source status

CISA KEV lists vulnerabilities known to be exploited. FIRST EPSS estimates the likelihood of exploitation in the next 30 days. An unavailable score does not mean zero risk.

Which CVEs have scores here?

This view includes predictions for CVE identifiers explicitly listed in public NuGet advisories. Microsoft release pages have their own prediction coverage. Check source status for the scope and latest checks.

No exploitation or prediction data is available here for these CVEs. This does not mean they are safe or unlikely to be exploited.

cve-program · CVE-2026-26960

Published

node-tar has Arbitrary File Read/Write via Hardlink Target Escape Through Symlink Chain in Extraction

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Source published
20 Feb 2026 01:07:52 UTC
Source modified
20 Feb 2026 15:35:27 UTC
Saved here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

Source: cve-program · CVE Program Terms of Use. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

euvd · EUVD-2026-8399

Published

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, ena…

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Additional publisher context

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Feb 20, 2026, 1:07:52 AM

dateUpdated: Feb 20, 2026, 3:35:27 PM

8 related source bulletins · separate from aliases

WID-SEC-W-2026-2451: Oracle Siebel CRM: Mehrere Schwachstellen

CVE-2021-3283 · CVE-2023-40577 · CVE-2024-39908 · CVE-2025-12383 · CVE-2025-13837 · CVE-2025-26791 · CVE-2025-5222 · CVE-2025-59250 · CVE-2025-67030 · CVE-2025-67721 · CVE-2025-68480 · CVE-2025-9624 · CVE-2026-1229 · CVE-2026-1605 · CVE-2026-22732 · CVE-2026-22737 · CVE-2026-24051 · CVE-2026-24308 · CVE-2026-24400 · CVE-2026-24734 · CVE-2026-26007 · CVE-2026-26960 · CVE-2026-27205 · CVE-2026-33186 · CVE-2026-34478 · CVE-2026-34500 · CVE-2026-34520 · CVE-2026-35204 · CVE-2026-40179 · CVE-2026-47011 · CVE-2026-47016 · CVE-2026-47018 · CVE-2026-47032 · CVE-2026-47036 · CVE-2026-60357 · CVE-2026-60689 · CVE-2026-60690 · CVE-2026-60704 · CVE-2026-60705 · CVE-2026-60709 · CVE-2026-60711 · CVE-2026-60712 · CVE-2026-60713

RHSA-2026:6428: Red Hat Security Advisory: Network Observability 1.11.1 for OpenShift

CVE-2025-61726 · CVE-2025-61728 · CVE-2025-61729 · CVE-2025-68121 · CVE-2026-25639 · CVE-2026-26960 · CVE-2026-29063 · CVE-2026-33186

WID-SEC-W-2026-1608: Atlassian Produkte (Bamboo, Bitbucket, Confluence, Crucible, Fisheye und Jira): Mehrere Schwachstellen

CVE-2019-13990 · CVE-2022-1471 · CVE-2022-23521 · CVE-2022-41903 · CVE-2023-22518 · CVE-2023-22522 · CVE-2023-22523 · CVE-2023-22524 · CVE-2023-22527 · CVE-2023-24998 · CVE-2023-46604 · CVE-2024-45801 · CVE-2025-52999 · CVE-2025-67030 · CVE-2026-22029 · CVE-2026-22732 · CVE-2026-24734 · CVE-2026-24880 · CVE-2026-25639 · CVE-2026-26960 · CVE-2026-27727 · CVE-2026-27830 · CVE-2026-29062 · CVE-2026-29129 · CVE-2026-29145 · CVE-2026-29146 · CVE-2026-29786 · CVE-2026-31802 · CVE-2026-33750 · CVE-2026-34483 · CVE-2026-34487 · CVE-2026-39304 · CVE-2026-42198 · CVE-2026-5598

msrc_CVE-2026-26960: node-tar has Arbitrary File Read/Write via Hardlink Target Escape Through Symlink Chain in Extraction

CVE-2026-26960

WID-SEC-W-2026-3461: HCL BigFix Service Management: Mehrere Schwachstellen

CVE-2026-18963 · CVE-2026-67100 · CVE-2026-67101 · CVE-2026-67102 · CVE-2026-67103 · CVE-2026-21806 · CVE-2026-21848 · CVE-2026-23950 · CVE-2026-26960 · CVE-2026-56590 · CVE-2026-56592 · CVE-2026-56595 · CVE-2026-56597 · CVE-2026-73086

RHSA-2026:5447: Red Hat Security Advisory: RHTAS 1.3.3 - Red Hat Trusted Artifact Signer Release

CVE-2025-61726 · CVE-2025-61728 · CVE-2026-24842 · CVE-2026-26960

RHSA-2026:6192: Red Hat Security Advisory: Red Hat OpenShift Dev Spaces 3.27.0 Release.

CVE-2025-13465 · CVE-2025-54386 · CVE-2025-61726 · CVE-2025-61728 · CVE-2025-61729 · CVE-2025-64756 · CVE-2025-68121 · CVE-2025-69873 · CVE-2026-1002 · CVE-2026-22045 · CVE-2026-23745 · CVE-2026-23950 · CVE-2026-24049 · CVE-2026-24842 · CVE-2026-25223 · CVE-2026-25639 · CVE-2026-25949 · CVE-2026-26960 · CVE-2026-26996

WID-SEC-W-2026-1229: Atlassian Bamboo, Bitbucket, Confluence, Jira: Mehrere Schwachstellen

CVE-2021-0341 · CVE-2021-31597 · CVE-2022-1471 · CVE-2022-25927 · CVE-2023-1370 · CVE-2023-3635 · CVE-2023-48631 · CVE-2024-29371 · CVE-2024-45801 · CVE-2024-47875 · CVE-2025-48734 · CVE-2025-66020 · CVE-2026-21571 · CVE-2026-22029 · CVE-2026-23745 · CVE-2026-23950 · CVE-2026-24734 · CVE-2026-24842 · CVE-2026-24880 · CVE-2026-25547 · CVE-2026-25639 · CVE-2026-26960 · CVE-2026-29063 · CVE-2026-31802 · CVE-2026-33870 · CVE-2026-33871 · CVE-2026-34487

Source published
Feb 20, 2026, 1:07:52 AM (timezone not stated)
Source modified
Feb 20, 2026, 3:35:27 PM (timezone not stated)
Saved here
15 Nov 2026 08:35:41 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

Source: euvd · ENISA EUVD · source terms and attribution apply. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

EUVD CVSS 3.1 · 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

nvd · CVE-2026-26960

Published

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, ena…

node-tar is a full-featured Tar for Node.js. When using default options in versions 7.5.7 and below, an attacker-controlled archive can create a hardlink inside the extraction directory that points to a file outside the extraction root, enabling arbitrary file read and write as the extracting user. Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. This issue has been fixed in version 7.5.8.

Additional publisher context

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Analyzed

Weakness classifications: CWE-22

Original publisher date fields

published: 2026-02-20T02:16:53.883

lastModified: 2026-06-17T10:26:27.197

1 source CPE criteria · context only
  • cpe:2.3:a:isaacs:tar:*:*:*:*:*:node.js:*:*

The original JSON retains the logical configuration operators, exclusions and version bounds.

Source published
20 Feb 2026 02:16:53 UTC
Source modified
17 Jun 2026 10:26:27 UTC
Saved here
25 Oct 2026 06:17:28 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

Source: nvd · NIST NVD usage terms; underlying source attribution retained. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · [email protected] · Secondary · 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

CVSS 3.1 · [email protected] · Primary · 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

osv · GHSA-83g3-92jg-28cx

Published

Arbitrary File Read/Write via Hardlink Target Escape Through Symlink Chain in node-tar Extraction

### Summary `tar.extract()` in Node `tar` allows an attacker-controlled archive to create a hardlink inside the extraction directory that points to a file outside the extraction root, using default options. This enables **arbitrary file read and write** as the extracting user (no root, no chmod, no `preservePaths`). Severity is high because the primitive bypasses path protections and turns archive extraction into a direct filesystem access primitive. ### Details The bypass chain uses two symlinks plus one hardlink: 1. `a/b/c/up -> ../..` 2. `a/b/escape -> c/up/../..` 3. `exfil` (hardlink) -> `a/b/escape/<target-relative-to-parent-of-extract>` Why this works: - Linkpath checks are string-based and do not resolve symlinks on disk for hardlink target safety. - See `STRIPABSOLUTEPATH` logic in: - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:255` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:268` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:281` - Hardlink extraction resolves target as `path.resolve(cwd, entry.linkpath)` and then calls `fs.link(target, destination)`. - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:566` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:567` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:703` - Parent directory safety checks (`mkdir` + symlink detection) are applied to the destination path of the extracted entry, not to the resolved hardlink target path. - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:617` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/unpack.js:619` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/mkdir.js:27` - `../tar-audit-setuid - CVE/node_modules/tar/dist/commonjs/mkdir.js:101` As a result, `exfil` is created inside extraction root but linked to an external file. The PoC confirms shared inode and successful read+write via `exfil`. ### PoC [hardlink.js](https://github.com/user-attachments/files/25240082/hardlink.js) Environment used for validation: - Node: `v25.4.0` - tar: `7.5.7` - OS: macOS Darwin 25.2.0 - Extract options: defaults (`tar.extract({ file, cwd })`) Steps: 1. Prepare/locate a `tar` module. If `require('tar')` is not available locally, set `TAR_MODULE` to an absolute path to a tar package directory. 2. Run: ```bash TAR_MODULE="$(cd '../tar-audit-setuid - CVE/node_modules/tar' && pwd)" node hardlink.js ``` 3. Expected vulnerable output (key lines): ```text same_inode=true read_ok=true write_ok=true result=VULNERABLE ``` Interpretation: - `same_inode=true`: extracted `exfil` and external secret are the same file object. - `read_ok=true`: reading `exfil` leaks external content. - `write_ok=true`: writing `exfil` modifies external file. ### Impact Vulnerability type: - Arbitrary file read/write via archive extraction path confusion and link resolution. Who is impacted: - Any application/service that extracts attacker-controlled tar archives with Node `tar` defaults. - Impact scope is the privileges of the extracting process user. Potential outcomes: - Read sensitive files reachable by the process user. - Overwrite writable files outside extraction root. - Escalate impact depending on deployment context (keys, configs, scripts, app data).

Source published
18 Feb 2026 00:57:13 UTC
Source modified
10 Sep 2026 03:50:34 UTC
Saved here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

Source: osv · GitHub Advisory Database · CC-BY-4.0. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS_V3 · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

Publisher rating · HIGH

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 15 Nov 12:11 UTC · 256 of 275 readable · 252 fully read · documentation 469/469 current