CVE-2026-24884

8.4 HIGH

📋 TL;DR

This vulnerability in the Compressing library allows attackers to write files to arbitrary locations on the host filesystem by exploiting improper symlink validation during TAR archive extraction. It affects all applications using vulnerable versions of the Compressing library for Node.js. Attackers can potentially overwrite sensitive files or create new files in security-critical directories.

💻 Affected Systems

Products:
  • compressing (Node.js library)
Versions: 1.x up to 1.10.3, 2.0.0
Operating Systems: All operating systems running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using vulnerable versions of compressing library for TAR archive extraction is affected. The vulnerability is present in default configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise through overwriting critical system files, installation of persistent backdoors, or privilege escalation by modifying security configuration files.

🟠

Likely Case

Data corruption, service disruption, or limited file system manipulation within the application's context, potentially leading to information disclosure or denial of service.

🟢

If Mitigated

Limited impact confined to the application's sandbox or container with proper file system permissions and isolation in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires the application to process malicious TAR archives. No public proof-of-concept has been identified, but the vulnerability is straightforward to exploit.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.10.4 or 2.0.1

Vendor Advisory: https://github.com/node-modules/compressing/security/advisories/GHSA-cc8f-xg8v-72m3

Restart Required: No

Instructions:

1. Update compressing dependency in package.json to ^1.10.4 or ^2.0.1. 2. Run 'npm update compressing' or 'yarn upgrade compressing'. 3. Verify the update with 'npm list compressing' or 'yarn list compressing'.

🔧 Temporary Workarounds

Validate archive sources

all

Only extract TAR archives from trusted sources and implement validation checks before extraction

Use alternative extraction libraries

all

Temporarily switch to alternative TAR extraction libraries that are not vulnerable

🧯 If You Can't Patch

  • Implement strict file system permissions to limit the application's write access to necessary directories only
  • Run the application in a container or sandbox with restricted file system access

🔍 How to Verify

Check if Vulnerable:

Check package.json or run 'npm list compressing' to see if version is 1.10.3 or earlier, or 2.0.0

Check Version:

npm list compressing | grep compressing

Verify Fix Applied:

After updating, verify compressing version is 1.10.4 or higher (for 1.x) or 2.0.1 or higher (for 2.x)

📡 Detection & Monitoring

Log Indicators:

  • Unexpected file writes outside expected extraction directories
  • Errors related to symlink resolution or file permission issues during archive extraction

Network Indicators:

  • Incoming TAR archives from untrusted sources
  • Archive extraction requests with unusual file paths

SIEM Query:

process.name:node AND file.path:* AND file.operation:write AND NOT file.path:/expected/extraction/path/*

🔗 References

📤 Share & Export