Skip to content
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

Integrate Snow with LavaMoat scuttling protection #17969

Merged
merged 12 commits into from
Jun 23, 2023

Conversation

weizman
Copy link
Member

@weizman weizman commented Mar 2, 2023

This PR follows up on LavaMoat/LavaMoat#462 which allows exporting the scuttling security feature to an outside scuttler (as an experimental feature ⚠️ ).

This in fact allows us in MetaMask to perform scuttling not only to the top main realm, but to all potential child realms using Snow.

In other words, if an attacker wants to access alert but can't because the alert property is scuttled, the attacker could have opened an iframe (aka new realm) and extract the alert function from the global object of that iframe.

With this PR, Snow will automatically apply the scuttling mechanizm to all new potential child realms, including the iframe described in the example, thus leaving the attacker unable to get a hold of an alert function instance.

The alert example is merely a demonstration of course, but scuttling all windows recursively brings an important security benefit to MetaMask (will be elaborated in the future).

@weizman weizman changed the title try scuttle with snow Try integrating snow with scuttling Mar 2, 2023
@socket-security
Copy link

socket-security bot commented Jun 22, 2023

New and updated dependency changes detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives1 Size Publisher
lavamoat ⬆️ 6.4.0...7.1.0 None +0/-1 38.9 kB

Footnotes

  1. https://docs.socket.dev

@weizman weizman changed the title Try integrating snow with scuttling Integrate Snow with LavaMoat scuttling protection Jun 22, 2023
@weizman weizman marked this pull request as ready for review June 22, 2023 14:59
@weizman weizman requested review from a team and kumavis as code owners June 22, 2023 14:59
@weizman weizman requested a review from segun June 22, 2023 14:59
@socket-security
Copy link

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Issue Package Version Note Source
Unpublished package lavamoat 7.1.0
  • Version: 7/1/2000, 12:00:00 AM
package.json

Next steps

What are unpublished packages?

Package version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.

Packages can be removed from the registry by manually un-publishing, a security issue removal, or may simply never have been published to the registry. Reliance on these packages will cause problem when they are not found.

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of package-name@version specifiers. e.g. @SocketSecurity ignore foo@1.0.0 bar@* or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore lavamoat@7.1.0

@codecov
Copy link

codecov bot commented Jun 22, 2023

Codecov Report

Merging #17969 (4c909fb) into develop (16dad66) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop   #17969      +/-   ##
===========================================
- Coverage    70.80%   70.79%   -0.01%     
===========================================
  Files          988      988              
  Lines        38366    38366              
  Branches     10042    10042              
===========================================
- Hits         27162    27160       -2     
- Misses       11204    11206       +2     

see 2 files with indirect coverage changes

digiwand
digiwand previously approved these changes Jun 22, 2023
@digiwand digiwand dismissed their stale review June 22, 2023 18:59

need to update scuttleName config

Copy link
Contributor

@digiwand digiwand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ nvm, LGTM! 🙌🏼

Copy link
Member

@Gudahtt Gudahtt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@weizman weizman merged commit 365c1e3 into MetaMask:develop Jun 23, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jun 23, 2023
@weizman weizman deleted the scuttle-with-snow branch June 24, 2023 12:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants