GitHub Advisoryadvisory · npm
GHSA-3g7p-8qhx-mc8r Shescape potential environment variable exposure on Windows with CMD
LOW
Official page ↗
- Aliases
- CVE-2023-35931
- Ecosystem
- npm
- Packages
- shescape
- Severity
- Low
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
- Weaknesses
- CWE-526
- Reviewed
- 2023-06-22
Affected packages
• npm shescape: < 1.7.1 → fixed in 1.7.1
Description
Impact
This impact users of Shescape:
1. On Windows using the Windows Command Prompt (i.e. `cmd.exe`), and
2. Using `quote`/`quoteAll` or `escape`/`escapeAll` with the `interpolation` option set to `true`.
An attacker may be able to get read-only access to environment variables. Example:
```javascript
import * as cp from "node:child_process";
import * as shescape from "shescape";
// 1. Prerequisites
const options = {
shell: "cmd.exe",
// Or
shell: undefined, // Only if the default shell is CMD
// And
interpolation: true, // Only applies to `escape` and `escapeAll` usage
}
// 2. Attack (one of many)
const payload = "%PATH%";
// 3. Usage
let escapedPayload;
escapedPayload = shescape.quote(payload, options);
// Or
escapedPayload = shescape.quoteAll([payload], options);
// Or
escapedPayload = shescape.escape(payload, options);
// Or
escapedPayload = shescape.escapeAll([payload], options);
// 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
```
Patches
This bug has been patched in v1.7.1 which you can upgrade to now. No further changes are required.
Workarounds
Alternatively, users can remove all instances of `%` from user input, either before or after using Shescape.
References
• Shescape Pull request #982
• Shescape commit `d0fce70`
• Shescape Release v1.7.1
Related
Alias · CVE (1)
- CVE-2023-35931 Shescape is a simple shell escape library for JavaScript. vulnerability
Weakness · CWE (1)
- CWE-526 Cleartext Storage of Sensitive Information in an Environment Variable weakness
References
- https://github.com/ericcornelissen/shescape/security/advisories/GHSA-3g7p-8qhx-mc8r web
- https://nvd.nist.gov/vuln/detail/CVE-2023-35931 advisory
- https://github.com/ericcornelissen/shescape/pull/982 web
- https://github.com/ericcornelissen/shescape/commit/d0fce70f987ac0d8331f93cb45d47e79436173ac web
- https://github.com/ericcornelissen/shescape package
- https://github.com/ericcornelissen/shescape/releases/tag/v1.7.1 web