CVE-2026-110639
9.8CriticalPublished 14 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- Full C/I/A compromise
- Weakness
- CWE-78
Impact
Remote attackers can execute arbitrary shell commands with the privileges of the Node.js process. They only need the application to pass attacker-controlled input into the archivePath or targetDir arguments of extract().
Root cause
The package passes unquoted archivePath and targetDir values directly into shelljs exec() command strings within multiple extractor modules.
Affected systems
@mborne/extract before 0.2.1
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Fix & remediation
Upgrade @mborne/extract to version 0.2.1 or later. If patching immediately is not possible, sanitize archivePath and targetDir inputs to reject or strip shell metacharacters before calling extract().
$ npm install @mborne/extract@^0.2.1AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
@mborne/extract before 0.2.1 contains an OS command injection vulnerability that allows attackers to execute commands by supplying shell metacharacters in archivePath or targetDir options. Attackers controlling these values passed to extract() can inject commands into unquoted shelljs exec() strings in the unzip, 7z, tar-bz2 and gz extractors, running them with Node.js process privileges.
References
- https://github.com/mborne/node-extract/blob/v0.2.0/src/extractor/unzip.js#L17-L19
- https://github.com/mborne/node-extract/commit/585e5b29657379e73c04f6f950ea8dc5319f8ae1
- https://github.com/mborne/node-extract/pull/8
- https://github.com/mborne/node-extract/releases/tag/v0.2.1
- https://www.vulncheck.com/advisories/mborne-extract-before-0.2.1-os-command-injection-via-archivepath-and-targetdir