CVE-2026-53486
decompress: Archive extraction can create files and links outside the target directory
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.
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
decompress: Archive extraction can create files and links outside the target directory
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.
- Record
CVE-2026-53486- 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, CWE-732
- Updated
- 2026-11-02
EUVDEUVD-2026-44465
9.1
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.
- Record
EUVD-2026-44465- 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-mp2f-45pm-3cg9
9.1
Decompress: Archive extraction can create files and links outside of 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:
- Record
GHSA-mp2f-45pm-3cg9- 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, CWE-732
- Updated
- 2026-11-02
NVD
9.1
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.
- Record
CVE-2026-53486- 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, CWE-732
- Updated
- 2026-11-02
OSV
9.1
decompress: Archive extraction can create files and links outside the target directory
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.
- Record
CVE-2026-53486- 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, CWE-732
- Updated
- 2026-11-02
OSVGHSA-mp2f-45pm-3cg9
9.1
Decompress: Archive extraction can create files and links outside of 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:
- Record
GHSA-mp2f-45pm-3cg9- 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, CWE-732
- Updated
- 2026-11-02
OSVRHSA-2026:40415
8.1
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:40415- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - 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-53486 No score
CVE-2026-53486 in @xhmikosr/decompress - Patched by Root
Root has patched CVE-2026-53486 in the @xhmikosr/decompress package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-53486- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@xhmikosr/decompressnpm |
before 10.2.1 | 10.2.1 |
@xhmikosr/decompressnpm |
11.0.0 up to 11.1.3 | 11.1.3 |
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 |
aspnetcore-runtime-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
aspnetcore-runtime-dbg-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
aspnetcore-targeting-pack-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
dotnet-apphost-pack-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
dotnet-hostfxr-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
dotnet-runtime-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
Show 11 moreShow less
| Package | Affected | Fixed |
|---|---|---|
dotnet-runtime-dbg-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
dotnet-sdk-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.128-1.2.hum1 | 0:8.0.128-1.2.hum1 |
dotnet-sdk-8.0-source-built-artifactsRed Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.128-1.2.hum1 | 0:8.0.128-1.2.hum1 |
dotnet-sdk-dbg-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.128-1.2.hum1 | 0:8.0.128-1.2.hum1 |
dotnet-targeting-pack-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.28-1.2.hum1 | 0:8.0.28-1.2.hum1 |
dotnet-templates-8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.128-1.2.hum1 | 0:8.0.128-1.2.hum1 |
dotnet8.0Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:8.0.128-1.2.hum1 | 0:8.0.128-1.2.hum1 |
@xhmikosr/decompressRoot:npm |
before 10.2.0-aikido.1 | 10.2.0-aikido.19.0.1-aikido.19.0.1-aikido.29.0.1-aikido.311.1.3-aikido.1 |
decompressRoot:npm |
before 4.2.1-aikido.1 | 4.2.1-aikido.14.2.1-aikido.2 |
@rootio/xhmikosr__decompressRoot:npm |
before 10.2.0-root.io.1 | 10.2.0-root.io.19.0.1-root.io.19.0.1-root.io.29.0.1-root.io.311.1.3-root.io.1 |
@rootio/decompressRoot:npm |
before 4.2.1-root.io.1 | 4.2.1-root.io.14.2.1-root.io.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-53486 is a critical vulnerability (CVSS 9.1) in Xhmikosr Decompress, published July 6, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.75%, the 55th percentile. Fixed in @xhmikosr/decompress 10.2.1.
References
github.com/XhmikosR/decompress/security/advisories/GHSA-mp2f-45pm-3cg9
github.com/XhmikosR/decompress/commit/281cefa00cd4275c10479bc5f1abba6b14dee8bd
github.com/XhmikosR/decompress/commit/60b5299402e72b0b53ca2e55222e9a1ccb44afae
github.com/XhmikosR/decompress/commit/9fcda4b0a66ca22dc8d337f9b0e7c30293c5fb89
github.com/XhmikosR/decompress/commit/aca5aac415dc04a6fae5200e51368cff436a09dd
github.com/XhmikosR/decompress/releases/tag/v10.2.1
Show 24 moreShow less
github.com/XhmikosR/decompress/releases/tag/v11.1.3
github.com/XhmikosR/decompress/commit/281cefa
github.com/XhmikosR/decompress/commit/60b5299
github.com/XhmikosR/decompress/commit/aca5aac
github.com/advisories/GHSA-mp2f-45pm-3cg9
github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53486.json
nvd.nist.gov/vuln/detail/CVE-2026-53486
github.com/XhmikosR/decompress
access.redhat.com/errata/RHSA-2026:40415
access.redhat.com/security/cve/CVE-2026-53486
access.redhat.com/security/updates/classification
images.redhat.com
access.redhat.com/security/cve/CVE-2026-59869
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_40415.json
bugzilla.redhat.com/show_bug.cgi?id=2500679
cve.org/CVERecord?id=CVE-2026-53486
bugzilla.redhat.com/show_bug.cgi?id=2498122
cve.org/CVERecord?id=CVE-2026-59869
nvd.nist.gov/vuln/detail/CVE-2026-59869
github.com/nodeca/js-yaml/commit/24f13e79ee1343a7e30bd6f6c9d9cdbf0ac9b2b7
github.com/nodeca/js-yaml/commit/59423c6f8cdc78742ac00e25a4dd39ef16b702e4
github.com/nodeca/js-yaml/releases/tag/3.15.0
github.com/nodeca/js-yaml/releases/tag/4.3.0
github.com/nodeca/js-yaml/security/advisories/GHSA-52cp-r559-cp3m