MetaMask / MetaMask/metamask-extension

Google can access all our wallets (for Chrome users)

Open
#11,106 0 comments 1 reaction 0 assignees View on GitHub
type-discussion type-security
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

**Describe the bug**

TLDR: Is a point of trust/failure for all our wallets.

Metamask is (also) a Google Chrome extension. But the distribution of this extension for Google Chrome is problematic. Google can unilaterally decide to change the extension, add a backdoor, and/or extract keys for all wallets, by simply modifying the extension they host on Google Web Store. Those extensions are signed by Google and not by the developer. So it begs the question, what is the point of using a decentralized blockchain and decentralized wallets, if we have to trust Google to distribute the code for those wallets?

**Steps to reproduce**

(Based on [these instructions](https://developer.chrome.com/docs/webstore/publish/).)

* Prepare a new release of MetaMask Chrome extension.
* Go to your Chrome Developer Dashboard.
* Upload a new version of the extension, by:
* Creating a zip file, without any signature.
* Uploading the zip file, without any signature.
* Once extension is approved by Google, they sign it and provide it with unique ID. You can access the public key, but not the private key.

**Expected behavior**

(Based on [old instructions](https://chrome-apps-doc2.appspot.com/extensions/packaging.html).)

* Prepare a new release of MetaMask Chrome extension.
* Create a zip file, without any signature.
* Create a crx file, by signing the zip file.
* Go to your Chrome Developer Dashboard.
* Upload a new version of the extension, by uploading the crx file.
* Only if the signature matches the public key registered with your developer account, the extension is published by Google.
* Google cannot release/modify the extension because they do not hold the private key. Releasing the extension under same name but with different private key changes extension ID.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the MetaMask Chrome extension release and distribution workflow against the Chrome Web Store steps described in the issue. Investigate how published extensions are signed and whether the developer-controlled signature can be verified. Done means establishing a supported distribution process where Google cannot replace the extension without changing its identity or invalidating the developer signature.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain, typescript
Domain
blockchain, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.