Skip to content

Sandbox escape possibility (this) #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ghost opened this issue Oct 21, 2020 · 1 comment
Open

Sandbox escape possibility (this) #14

ghost opened this issue Oct 21, 2020 · 1 comment

Comments

@ghost
Copy link

ghost commented Oct 21, 2020

With the default setup it is easily possible to escape the sandbox:

const compiler = require('@nx-js/compiler-util')
compiler.compileCode('return this')({})
// returns Object [global]

There is a way to protect against this vulnerability:

compiler.compileCode('return this').bind({})({})
// returns {}

But this library should be "secure by default".

Occurs in both nodejs and browser.
Version: 2.0.0

@ghost ghost changed the title Sandbox escape possibility Sandbox escape possibility (this) Oct 21, 2020
@xaviergonz
Copy link

xaviergonz commented Apr 6, 2022

it is also possible to escape (even with bind) using something like

((function*(){}).constructor("alert(4)"))().next();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant