Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local low-privilege access
-
ExploitInfluence destination argument to unzip()
-
ExecutionSupply path traversal sequences (e.g., ../)
-
ImpactWrite extracted files to arbitrary filesystem location
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Local system access is required - the CVSS 4.0 AV:L metric confirms this is not remotely exploitable. Low-privilege user access is sufficient (PR:L); no administrative or root privileges are needed to trigger the flaw. Exploitation requires the ability to influence the destination argument passed to the unzip() function in dist/index.js, most realistically in applications or scripts that accept user-supplied or external input as the extraction target path. Impact is bounded by the write permissions of the process invoking unzip-crx: a restricted service account cannot overwrite files outside its own accessible paths. There is no confidentiality or availability impact (VC:N, VA:N per the CVSS vector) - the only effect is unauthorized file writes within the local filesystem. Non-default or special configurations are not required; any invocation of unzip() with an unsanitized destination is vulnerable. |
| Impact | The CVSS 4.0 base score of 4.8 (Medium) is supported by the vector AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N, reflecting a local-only attack with low complexity, low privilege requirement, and limited impact confined to integrity. The E:P exploit maturity modifier is consistent with the confirmed publicly available proof-of-concept. KEV status is negative, meaning no confirmed widespread or in-the-wild exploitation has been reported to CISA. No EPSS data was provided, limiting probabilistic exploitation forecasting. The local attack vector (AV:L) is the primary risk-limiter: exploitation is not remotely triggerable and requires the attacker to already have local system access or the ability to influence input to the unzip() call. Practical risk is highest in CI/CD pipeline contexts where untrusted CRX archives are processed automatically and the destination argument is externally influenced. The absence of a vendor response and patch elevates residual risk for teams that have not implemented compensating controls, but the bounded impact (VI:L, no confidentiality or availability loss) keeps this from being an urgent priority for most deployments. |
| Exploit ScenarioDerived | A local attacker with low-privilege access on a system where an application uses unzip-crx to process CRX files supplies a crafted destination argument containing ../ traversal sequences - for example, ../../etc/cron.d/backdoor - causing the unzip() function to extract archive contents to an arbitrary filesystem location outside the intended output directory. A publicly available proof-of-concept is referenced in GitHub issue #19, making reproduction straightforward for any local attacker who can influence the destination path passed to the library. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Path traversal in peerigon unzip-crx and unzip-crx-3 (versions up to 0.2.0) enables a local, low-privileged attacker to write extracted archive files outside the intended destination directory by supplying a crafted path argument to the unzip() function. A publicly available proof-of-concept exploit exists via the GitHub issue tracker, and no vendor patch has been released as the project has not responded to the disclosure. The integrity impact is limited to arbitrary file placement on the local filesystem within the privileges of the invoking process.
RemediationAI
No vendor-released patch has been identified at time of analysis - the maintainers have not responded to the responsible disclosure. The primary compensating control is to validate and canonicalize the destination path before passing it to unzip(): use Node.js path.resolve() to compute the absolute path, then assert that it remains within an expected base directory before invoking the function, rejecting any input that would escape the boundary. Developers should also consider replacing unzip-crx with an actively maintained archive-extraction library that performs internal path sanitization. If replacement is not immediately feasible, restrict the package's invocation to fully trusted, internally controlled inputs only and avoid passing any externally supplied or user-influenced values as the destination argument. Running the invoking process under a least-privilege account or inside a container with a restricted filesystem view limits the blast radius of any exploitation. Monitor the GitHub issue tracker at https://github.com/peerigon/unzip-crx/issues/19 for vendor response and patch availability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected packages - peerigon/unzip-crx and peerigon/unzip-crx-3 (CPE: cpe:2.3:a:peerigon:unzip-crx and cpe:2.3:a:peerigon:unzip-crx-3) - are Node.js utilities designed to extract Chrome Extension (CRX) archive files. The vulnerability resides in the unzip() function within dist/index.js, in the Archive Extraction component. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): the function does not sanitize the caller-supplied destination argument, allowing path components such as ../ sequences embedded in archive entry paths or the destination parameter to escape the intended output directory. This class of flaw is well-understood in archive-extraction libraries and typically arises when entry filenames are concatenated with a base path without first canonicalizing and bounding the result.
Know when Unzip Crx gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
Local attack vector with low-privilege requirement confirmed by description; impact is limited to file write outside intended directory with no confidentiality or availability effect.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A flaw has been found in peerigon unzip-crx and unzip-crx-3 up to 0.2.0. This affects the function unzip of the file dist/index.js of the component Archive Extraction. Executing a manipulation of the argument destination can lead to path traversal. The attack can only be executed locally. The exploit has been published and may be used. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
EUVD-2026-65301
GHSA-5jh7-c63f-jp85
NVD
CVE.org
EPSS
VulDB
Exploit-DB