CVE-2026-53486: decompress: Archive extraction can create files and links outside the target directory
Impact
When extracting an archive to a directory, a crafted archive can read or write files outside that directory. The flaw is in the code that writes the parsed entries, so it affects every format decompress handles: tar, tar.gz, tar.bz2, and zip by default, plus any others added through the plugins option.
A link (hardlink) or symlink entry is created without checking where its target points. A hardlink can be aimed at any file the running process can read; that file then appears inside the output directory and its contents are exposed. A symlink can point outside the output directory and redirect a later write.
The path containment check used a string prefix comparison (realPath.indexOf(outputPath) !== 0). Output /srv/out does not contain /srv/out-old, but the prefix comparison treats it as inside, so an entry can escape into a sibling directory whose name starts with the output directory name.
File modes were applied as mode & ~umask, which does not remove the setuid, setgid, or sticky bits. A crafted entry can create a setuid or setgid file. This matters when extraction runs as root, for example in CI, containers, or install scripts.
Any code that extracts archives from an untrusted or attacker-influenced source is affected. Archives are commonly downloaded before extraction, so this is reachable over the network in many setups.
Patches
Fixed in @xhmikosr/decompress 10.2.1 and 11.1.3. Link targets are now resolved and checked against the output directory, containment uses path.relative, and setuid, setgid, and sticky bits are removed.
The upstream decompress package is unmaintained, and all versions through its last release (4.2.1) have the same flaws. There is no upstream fix. Migrate to @xhmikosr/decompress 11.1.3 or later.
Workarounds
Extract only archives you trust. Run extraction as a non-root user so the mode issue cannot create a privileged file. After extracting, reject any symlink or hardlink that points outside the target and any file with unexpected mode bits.
Resources
Related prior issue in the upstream project this package forks: CVE-2020-12265 / GHSA-qgfr-5hqp-vrw9 Fix commits and releases: https://github.com/XhmikosR/decompress/releases/tag/v10.2.1 https://github.com/XhmikosR/decompress/releases/tag/v11.1.3 https://github.com/XhmikosR/decompress/commit/aca5aac https://github.com/XhmikosR/decompress/commit/281cefa https://github.com/XhmikosR/decompress/commit/60b5299
Other sources
The decompress package for Node.js extracts archives. Prior to 10.2.1 and 11.1.3, archive extraction can create files and links outside the target directory. When extracting an archive to a directory, a crafted archive can read or write files outside that directory because hardlink and symlink entries are created without checking where targets point, path containment used a string prefix comparison, and file modes failed to remove setuid, setgid, or sticky bits. This issue is fixed in @xhmikosr/decompress versions 10.2.1 and 11.1.3.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@xhmikosr/decompressto a version that resolves this vulnerability.Fixed in 11.1.3 - Upgrade
Upgrade
npm/@xhmikosr/decompressto a version that resolves this vulnerability.Fixed in 10.2.1 - Upgrade
Upgrade
@xhmikosr/decompressto a version that resolves this vulnerability.Fixed in 10.2.1 - Upgrade
Upgrade
@xhmikosr/decompressto a version that resolves this vulnerability.Fixed in 11.1.3 - Compensating control
Extract only archives you trust (avoid extracting archives from untrusted or attacker-influenced sources).
- Compensating control
Run archive extraction using @xhmikosr/decompress as a non-root user to mitigate the setuid/setgid mode issue when extracting as root.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-53486?
The severity of CVE-2026-53486 is critical with a score of 9.1.
What impact does CVE-2026-53486 have?
CVE-2026-53486 allows a crafted archive to read or write files outside the intended directory during extraction.
How do I fix CVE-2026-53486?
To fix CVE-2026-53486, update to the latest version of the affected libraries npm/@xhmikosr/decompress and npm/decompress.
What types of files are affected by CVE-2026-53486?
CVE-2026-53486 affects multiple archive formats, including tar, tar.gz, tar.bz2, and zip.
Is CVE-2026-53486 associated with any programming practices?
CVE-2026-53486 is related to a path traversal vulnerability in the code that handles the writing of parsed entries.