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

cve-program · CVE-2026-26960

Published

node-tar

Vendor product

Publisher's version information

Shown as published. These rules are not interpreted as NuGet package version ranges.

{
                    "vendor": "isaacs",
                    "product": "node-tar",
                    "versions": [
                        {
                            "version": "< 7.5.8",
                            "status": "affected"
                        }
                    ]
                }

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

euvd · EUVD-2026-8399

Published

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

No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.

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

nvd · CVE-2026-26960

Published

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.

No normalized affected-package data is projected for this source revision. The original publisher record may contain additional product and version evidence; this does not establish that a package is unaffected.

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

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

Published
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