CVE-2026-39246

decompress: decompress: arbitrary symlink creation during archive extraction leads to information disclosure

Published Jul 9, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
decompress before 4.2.2 allows arbitrary symlink creation during archive extraction. When processing symlink entries (type === 'symlink'), the x.linkname field from the archive is passed directly to fs.symlink() without validation (index.js line 121). The preventWritingThroughSymlink check on line 98 only applies to file entries, not symlink creation. An attacker can craft an archive with symlink entries pointing to sensitive files outside the extraction directory (e.g., /etc/passwd), enabling information disclosure when the application reads the extracted contents.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Title decompress: decompress: arbitrary symlink creation during archive extraction leads to information disclosure
First Time appeared Redhat
Redhat hummingbird
Weaknesses CWE-61
CPEs cpe:/a:redhat:hummingbird:1
Vendors & Products Redhat
Redhat hummingbird
References
Metrics threat_severity

None

threat_severity

Important

Type Values Removed Values Added
Title Symlink Creation Allows Sensitive File Disclosure in decompress NPM Package
Type Values Removed Values Added
Title Symlink Creation Allows Sensitive File Disclosure in decompress NPM Package
Type Values Removed Values Added
Weaknesses CWE-59
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Kevva
Kevva decompress
Vendors & Products Kevva
Kevva decompress
Type Values Removed Values Added
Description decompress before 4.2.2 allows arbitrary symlink creation during archive extraction. When processing symlink entries (type === 'symlink'), the x.linkname field from the archive is passed directly to fs.symlink() without validation (index.js line 121). The preventWritingThroughSymlink check on line 98 only applies to file entries, not symlink creation. An attacker can craft an archive with symlink entries pointing to sensitive files outside the extraction directory (e.g., /etc/passwd), enabling information disclosure when the application reads the extracted contents.
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
Jul 10, 2026, 5:27 PM
Reserved
Apr 6, 2026, 12:00 AM
Status
Analyzed
Published
Jul 9, 2026, 10:17 PM
Modified
Jul 13, 2026, 12:44 PM
Severity
Important
Public date
Jul 9, 2026, 12:00 AM