-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
For Uphold wallet integration, we should protect against malicious extensions #4928
Comments
Labelling as |
Verified passed with
ContentScript Step 2 (sandbox): ContentScript Step 3 (sandbox): ContentScript Step 4 (sandbox): WebRequest Step 2: ContenScript performed for production and sandbox Verification passed on
WebRequest Step 3: WebRequest Step 4: ContentScript Step 2 (sandbox): ContentScript Step 3 (sandbox): ContentScript Step 4 (sandbox): ContentScript Step 3 (prod): |
@fmarier step 2 from the test plan brave/brave-core#2946 is redirecting to the page below In Windows |
I updated the test plan at brave/brave-core#2946. The expected landing page is now |
@jsecretan This is really frustrating as it disables password managers. There is no indication in the UI that the disabling is intentional, and I just spent 20 minutes trying to figure out why Bitwarden wouldnt work on the uphold.com account creation page. Clicking the extensions and then clicking A way to re-enable extensions would be nice. In lieu of the ability to control what my browser does, an explanation about why would be appreciated. |
@evq Ah, good to know its a bug. I will open an issue for it. Scratch that: someone beat me to it |
Description
To prevent attacks by malicious extensions in our new sign in process for the integrated Uphold wallet, we should block access to our specific integrated wallet sign in URL to extensions. This URL from Uphold is going to be specifically dedicated to the purpose of our wallet integration, so blocking that URL should have no effect on legitimate extensions. This will include access through the WebRequest API and to sign in page generally (this includes scripting access to the page).
Misuse of the WebRequest API is something Chrome itself has to contend with - there are already blocks in place for the chrome web store. We should be able to look to https://cs.chromium.org/chromium/src/extensions/browser/api/web_request/web_request_permissions.cc?rcl=a367b3f7bd249d6e3feb13ee250b83baf821f3f3&l=238 as a way to implement blacklisting of the particular linking / redirect URL.
For blocking page level / scripting access we may be able to make use of the “withheld” permissions functionality that already exists for user granted host permissions for extensions. Currently you can set an extension to be granted permission to a particular site upon a user clicking the icon in the toolbar. It would be ideal if we can set an override so that all* extensions require on-click permissions for the uphold authorization pages, no matter their global permission setting.
This on-click permission facility seems like it would strike a good balance between us protecting the user and them being able to override for legitimate extensions. Since there is no associated request notification (the extension icon in the toolbar is simply shown within a differently colored circle) a user is unlikely to grant permissions by clicking the icon unless they have a legitimate need for that extension on this page.
*: A small whitelist for known password managers would likely be desirable
cc: @evq
The text was updated successfully, but these errors were encountered: