GitHub Advisoryadvisory · npm

GHSA-66pp-5p9w-q87j Shescape has potential environment variable exposure on Windows with CMD

LOW Published 2025-03-26 Modified 2025-03-26 Official page ↗
Aliases
CVE-2025-30222
Ecosystem
npm
Packages
shescape
Severity
Low
CVSS vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:U
Weaknesses
CWE-200
Reviewed
2025-03-26

Affected packages

• npm shescape: >= 1.7.2, < 2.1.2 → fixed in 2.1.2

Description

Impact This impact users of Shescape on Windows that explicitly configure `shell: 'cmd.exe'` or `shell: true` using any of `quote`/`quoteAll`/`escape`/`escapeAll`. An attacker may be able to get read-only access to environment variables. Example: ```javascript import * as cp from "node:child_process"; import { Shescape } from "shescape"; // 1. Prerequisites const shescape = new Shescape({ shell: "cmd.exe", // Or shell: true, // Only if the default shell is CMD }); // 2. Payload const payload = '"%PATH%'; // 3. Usage let escapedPayload; escapedPayload = shescape.quote(payload); // Or escapedPayload = shescape.quoteAll([payload]); // Or escapedPayload = shescape.escape(payload); // Or escapedPayload = shescape.escapeAll([payload]); // And (example) const result = cp.execSync(`echo Hello ${escapedPayload}`, options); // 4. Impact console.log(result.toString()); // Outputs "Hello" followed by the contents of the PATH environment variable ``` For Shescape prior to v2.0.0, the `options` object must have `shell: 'cmd.exe'` or `shell: undefined` and `interpolation: true`. Patches This bug has been patched in v2.1.2 which you can upgrade to now. If you are already using v2 of Shescape, no further changes are required. If you are using v1 of Shescape, follow the migration guide to upgrade to v2. There is no plan to release a patch compatible with v1 of Shescape. Workarounds Alternatively, users can remove all instances of % from user input before using Shescape. References • Shescape Pull Request #1916 • Shescape commit 0a81f1e • Shescape release v2.1.2 For more information • Comment on Pull Request #1916 • Comment on commit 0a81f1e • Open an issue at https://github.com/ericcornelissen/shescape/issues (New issue > Question)

Related

Alias · CVE (1)

  • CVE-2025-30222 Shescape is a simple shell escape library for JavaScript. vulnerability

Weakness · CWE (1)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness

References