CVE-2026-101894
@xhmikosr/decompress: Path traversal via symlink chain
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
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
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
9.1
@xhmikosr/decompress: Path traversal via symlink chain
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
- Record
CVE-2026-101894- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
EUVDEUVD-2026-88365
9.1
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
- Record
EUVD-2026-88365- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hrh2-vp3x-79xf
9.1
@xhmikosr/decompress: Path traversal via symlink chain
Impact
When extracting an untrusted archive with the default decompress(input, output) API, a crafted archive containing a chain of symlink entries can make a later entry resolve outside the output directory. The lexical containment checks pass, but the kernel follows the planted symlinks to a path outside output, letting an attacker write (and read) files outside the intended extraction directory. Overwriting startup scripts or configuration can lead to remote code execution.
This is a bypass of the hardening in GHSA-mp2f-45pm-3cg9. Any application that extracts attacker-controlled archives is affected.
Patches
Fixed in 11.1.4 (latest) and backported to 10.2.2 (release-v10 dist-tag). Upgrade to one of these.
The unmaintained upstream decompress package shares this flaw and will not be patched. Migrate to @xhmikosr/[email protected] (or @10.2.2).
Workarounds
None. Do not extract untrusted archives on affected versions. If you cannot upgrade, validate entries out of band and reject any whose resolved path escapes the target directory.
- Record
GHSA-hrh2-vp3x-79xf- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
NVD
9.1
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
- Record
CVE-2026-101894- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
OSV
9.1
@xhmikosr/decompress: Path traversal via symlink chain
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
- Record
CVE-2026-101894- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-04
OSVGHSA-hrh2-vp3x-79xf
9.1
@xhmikosr/decompress: Path traversal via symlink chain
Impact
When extracting an untrusted archive with the default decompress(input, output) API, a crafted archive containing a chain of symlink entries can make a later entry resolve outside the output directory. The lexical containment checks pass, but the kernel follows the planted symlinks to a path outside output, letting an attacker write (and read) files outside the intended extraction directory. Overwriting startup scripts or configuration can lead to remote code execution.
This is a bypass of the hardening in GHSA-mp2f-45pm-3cg9. Any application that extracts attacker-controlled archives is affected.
Patches
Fixed in 11.1.4 (latest) and backported to 10.2.2 (release-v10 dist-tag). Upgrade to one of these.
The unmaintained upstream decompress package shares this flaw and will not be patched. Migrate to @xhmikosr/[email protected] (or @10.2.2).
Workarounds
None. Do not extract untrusted archives on affected versions. If you cannot upgrade, validate entries out of band and reject any whose resolved path escapes the target directory.
- Record
GHSA-hrh2-vp3x-79xf- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-22, CWE-59
- Updated
- 2026-11-02
OSVCLSA-2026-1792231664 No score
TuxCare security update for decompress (2 CVEs)
TuxCare rebuilt decompress to address 2 CVEs. Fixed in 4.2.1-tuxcare.2.
- Record
CLSA-2026-1792231664- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-101894 No score
CVE-2026-101894 in decompress - Patched by Root
Root has patched CVE-2026-101894 in the decompress package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-101894- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@xhmikosr/decompressnpm |
11.0.0 to 11.1.3 | 11.1.4 |
@xhmikosr/decompressnpm |
through 10.2.1 | 10.2.2 |
decompressnpm |
through 4.2.1 | None known |
decompressTuxCare:npm From an advisory covering 2 CVEs |
4.2.1-tuxcare.0 up to 4.2.1-tuxcare.2, plus listed versions 4.2.14.2.1-tuxcare.1 |
4.2.1-tuxcare.2 |
@xhmikosr/decompressnpm |
11.0.0 up to 11.1.4 | 11.1.4 |
@xhmikosr/decompressnpm |
before 10.2.2 | 10.2.2 |
decompressRoot:npm |
before 4.2.1-aikido.2 | 4.2.1-aikido.2 |
@xhmikosr/decompressRoot:npm |
before 9.0.1-aikido.3 | 9.0.1-aikido.311.1.3-aikido.1 |
@rootio/decompressRoot:npm |
before 4.2.1-root.io.2 | 4.2.1-root.io.2 |
@rootio/xhmikosr__decompressRoot:npm |
before 9.0.1-root.io.3 | 9.0.1-root.io.311.1.3-root.io.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | murrez/CVE-2026-101894 | 2026-09-29 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-101894 is a critical vulnerability (CVSS 9.1) in Kevva Decompress, published September 28, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.81%, the 57th percentile. Fixed in @xhmikosr/decompress 11.1.4.
References
github.com/XhmikosR/decompress/security/advisories/GHSA-hrh2-vp3x-79xf
github.com/XhmikosR/decompress/commit/5f4b2f64abb31bbaf1fef8975b595fd7df2558d8
github.com/XhmikosR/decompress/commit/f6c88c668216d6a12c6cecf4fe0b6c70bf77050a
github.com/XhmikosR/decompress/releases/tag/v10.2.2
github.com/XhmikosR/decompress/releases/tag/v11.1.4
nvd.nist.gov/vuln/detail/CVE-2026-101894
github.com/advisories/GHSA-hrh2-vp3x-79xf
github.com/CVEProject/cvelistV5/tree/main/cves/2026/101xxx/CVE-2026-101894.json
github.com/XhmikosR/decompress