-
Notifications
You must be signed in to change notification settings - Fork 72
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
Scope proxy leak allow constructive access to global lexicals #904
Labels
Comments
kriskowal
added a commit
that referenced
this issue
Oct 26, 2022
Fixes #904 *BREAKING CHANGE*: Removes support for `globalLexicals`. To our knowledge, there are no production uses for `globalLexicals`. They currently could leak because `moduleLexicals` and `globalLexicals` used the same scope object, so properties of one would leak to the other with crafted modules. We had an opportunity to plug the leak at the cost of a fifth scope in all evaluators, but elected to remove the unnecessary complexity instead.
kriskowal
added a commit
that referenced
this issue
Oct 27, 2022
Fixes #904 *BREAKING CHANGE*: Removes support for `globalLexicals`. To our knowledge, there are no production uses for `globalLexicals`. They currently could leak because `moduleLexicals` and `globalLexicals` used the same scope object, so properties of one would leak to the other with crafted modules. We had an opportunity to plug the leak at the cost of a fifth scope in all evaluators, but elected to remove the unnecessary complexity instead.
kriskowal
added a commit
that referenced
this issue
Oct 28, 2022
Fixes #904 *BREAKING CHANGE*: Removes support for `globalLexicals`. To our knowledge, there are no production uses for `globalLexicals`. They currently could leak because `moduleLexicals` and `globalLexicals` used the same scope object, so properties of one would leak to the other with crafted modules. We had an opportunity to plug the leak at the cost of a fifth scope in all evaluators, but elected to remove the unnecessary complexity instead.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A property of the
globalLexicals
option of theCompartment
constructor is that they can only be accessed lexically, which can be denied to evaluated code by simple code transforms. However combined with the leak of scope proxy objects (#31), evaluate code can constructively reach the global lexicals.Unlike #876 this affects all evaluators.
The text was updated successfully, but these errors were encountered: