GitHub Advisoryadvisory · npm

GHSA-446w-rrm4-r47f Exposure of home directory through shescape on Unix with Bash

MEDIUM Published 2022-03-03 Modified 2022-03-18 Official page ↗
Aliases
CVE-2022-24725
Ecosystem
npm
Packages
shescape
Severity
Moderate
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-200, CWE-78
Reviewed
2022-03-03

Affected packages

• npm shescape: >= 1.4.0, < 1.5.1 → fixed in 1.5.1

Description

Impact The issue allows for exposure of the home directory on Unix systems when using Bash with the `escape` or `escapeAll` functions from the _shescape_ API with the `interpolation` option set to `true`. Other tested shells, Dash and Zsh, are not affected. ```javascript const cp = require("child_process"); const shescape = require("shescape"); const payload = "home_directory=~"; const options = { interpolation: true }; console.log(cp.execSync(`echo ${shescape.escape(payload, options)}`)); // home_directory=/home/user ``` Depending on how the output of _shescape_ is used, directory traversal may be possible in the application using _shescape_. Patches The issue was patched in `v1.5.1`. Workarounds Manually escape all instances of the tilde character (`~`) using `arg.replace(/~/g, "\\~")`. References See GitHub issue https://github.com/ericcornelissen/shescape/issues/169.

Related

Alias · CVE (1)

  • CVE-2022-24725 Shescape is a shell escape package for JavaScript. vulnerability

Weakness · CWE (2)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-78 Improper Neutralization of Special Elements used in an OS Command weakness

References