NewApp Monitoring is liveSign up free
AgentbeamBeta
Open-source package vulnerability · npm

CVE-2026-101894: @xhmikosr/decompress: Path traversal via symlink chain

criticalCVSS 3.1 9.1GHSA-hrh2-vp3x-79xf

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.

Published Sep 29, 2026

Affected packages

@xhmikosr/decompress

Ecosystem
npm
Affected
>= 11.0.0, <= 11.1.3
Fixed in
11.1.4
Check
npm ls @xhmikosr/decompress

@xhmikosr/decompress

Ecosystem
npm
Affected
<= 10.2.1
Fixed in
10.2.2
Check
npm ls @xhmikosr/decompress

decompress

Ecosystem
npm
Affected
<= 4.2.1
Fixed in
No patched version yet
Check
npm ls decompress

Advisory details

From the GitHub Advisory Database (CC BY 4.0).

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.

Credited to umar0x, XhmikosR.

References

How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology

More npm vulnerabilities

All npm entries