CVE-2026-39245 decompress vulnerability
decompress before 4.2.2 contains an improper path containment check that enables directory traversal and arbitrary file write. The safeMakeDir function (index.js line 29) and the extraction path validation (index.js line 106) use String.indexOf() to verify the resolved path is within the output directory: realDestinationDir.indexOf(realOutputPath) !== 0. This check is flawed because it does not enforce a path separator boundary. For example, "/tmp/app_config".indexOf("/tmp/app") returns 0, incorrectly passing the check even though /tmp/app_config is outside /tmp/app. Combined with the unvalidated symlink creation in the same package, an attacker can write arbitrary files to directories adjacent to the extraction target. This is a bypass of the fix for CVE-2020-12265. The correct check requires appending a path separator: realParentPath.indexOf(realOutputPath + path.sep) !== 0.
Quick answer
decompress project decompress should be reviewed and updated if it matches the affected versions. The recommended fix is to apply the vendor-supported patched version or the mitigation steps below, then retest the public website with Fixnx.
Who is affected
Affected versions
- Review vendor advisory for affected versions.
Fixed versions
- Apply the latest vendor-supported patched version.
How to fix it
decompress is affected by CVE-2026-39245, a path traversal and file write risk. decompress before 4.2.2 contains an improper path containment check that enables directory traversal and arbitrary file write. The recommended remediation is to update to decompress 4.2.2 or later. Until the update is complete, extract untrusted archives only in disposable sandboxes and enforce strict path containment checks, review logs, and reduce exposure of the affected service or workflow.
- Inventory every deployment, package, appliance, container, service, and managed environment that uses decompress.
- Confirm the installed version and compare it with versions before 4.2.2 and the source advisory for CVE-2026-39245.
- Apply the vendor-supported fix: update to decompress 4.2.2 or later.
- If the update cannot be applied immediately, extract untrusted archives only in disposable sandboxes and enforce strict path containment checks; disable unnecessary public access, endpoints, plugins, integrations, or management interfaces until patched.
- Review application, device, reverse-proxy, WAF, package manager, container, authentication, and audit logs for activity related to CVE-2026-39245.
- Rotate sessions, API tokens, service credentials, integration keys, and administrator passwords if logs or affected data indicate compromise or unauthorized access.
- Clear caches, restart affected services, rebuild affected containers or appliances when appropriate, and remove temporary files or stored payloads created during exploitation attempts.
Scan now. Google sign-in is only needed to unlock fix guidance.
Verify the fix
- Confirm decompress now reports decompress 4.2.2 or later or a later vendor-supported fixed release for the deployed branch.
- Verify the affected workflow no longer allows the behavior described in CVE-2026-39245, using a safe regression test or vendor-provided validation method.
- Review logs after remediation for continued exploit attempts, denial-of-service symptoms, suspicious redirects, unauthorized requests, file access, or configuration changes.
- Rerun a Fixnx scan and any product-specific scanner, package audit, device health check, or manual regression test relevant to the affected service.
- Document affected assets, fixed versions, mitigation decisions, validation evidence, and any cleanup or credential rotation performed.
Related categories
Trusted references
FAQ
What is affected by CVE-2026-39245?
decompress project decompress should be checked against the vendor advisory and trusted references linked on this page.
What should I fix first?
Start with internet-facing sites, admin panels, login flows, plugins, themes, modules, packages, and systems that process user-controlled input or sensitive data.
How do I confirm the fix worked?
Apply the patched version or mitigation, clear caches where relevant, retest the affected workflow, and run a new Fixnx scan to verify public website exposure signals.
How are Fixnx security risk categories chosen?
Fixnx keeps one canonical risk page and assigns only broad, relevant categories such as ecosystem, technology area, or vulnerability class.
