MetaMask / metamask-extension

:globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites
https://metamask.io
Other
11.52k stars 4.7k forks source link

Seed Phrase Bug Bounty #3127

Open danfinlay opened 6 years ago

danfinlay commented 6 years ago

As part of our commitment to the best security we can offer, the MetaMask team is planning to continuously offer a bug bounty on our seed phrase functionality, we are starting the bounty at 1 ether, but anyone is free to add to the bounty as they like.

As we have written about before #2577, and have awarded a bounty for in the past, sometimes users have reported that the seed phrase they were originally given does not restore their original accounts.

We have continued to receive rare but concerning accounts of similar experiences: #2904 #3042 #4756 #4697

The bounty will be paid to anyone who can demonstrate a condition in MetaMask's code base, either through automated tests or manual reproduction, where MetaMask would show a user a seed phrase on first setup that would not work for later restoring their accounts.

Thanks for your interest and participation, we're available to answer any questions about our key management here.

EmanuelKuhn commented 5 years ago

Describe the bug

Metamask doesn't stop the seed phrase generation even though the user interrupted it and imported an account with an existing seed phrase.

This leads to metamask showing a new, generated seed phrase while using the imported one.

To reproduce

Video demonstrating the behaviour:

https://youtu.be/31VamT5CxTY

Steps to reproduce

  1. Get a fresh metamask install 1.1 Click try it now to use the new ui
  2. Create a password 2.1 Take note of the account image 2.2 Accept the terms
  3. Quit firefox
  4. Open firefox again
  5. Open metamask
  6. Import using account seed phrase 6.1 Paste a valid seed phrase as wallet seed 6.2 enter a new password (I used the same as in step 2) 6.3 click on restore
  7. Continue with secret backup phrase steps 7.1 Notice that the account image is different than in step 2.1 even though the same backup phrase is shown (this account image actually belongs to the imported seed phrase) 7.2 Notice that even though we just imported a seed phrase metamask still continues with the seed generation process 7.3 The user is lead to believe that this seed phrase is the one being used by metamask even though it isn't
  8. Reveal the seed phrase 8.1 Notice that the seed phrase is actually the imported one and not the one metamask just made us copy down

Expected behaviour

option 1

When a user imports an account using a seed phrase while metamask is in the seed phrase generation state, the seed phrase generation should stop.

option 2

Another solution could also be to not allow the user to import using an account seed phrase when meta mask is in the seed phrase generation state.

Actual behaviour

Metamask doesn't stop the seed phrase generation process even though the user imported an existing account using an account seed phrase. This leads to metamask showing a wrong seed phrase to the user.

Browser details

•   OS: macOs 10.13
•   Browser :- Firefox
•   MetaMask: 4.9.2 (latest firefox version)
•   Beta UI
bdresser commented 5 years ago

Hey @EmanuelKuhn - thanks for reporting, and thanks for the thorough writeup and repro steps.

This appears to be a very small edge case. A user would have to pause after completing a substantial portion of onboarding, close the browser, then choose to import a different pre-existing seed. It's also worth noting that the user must have the correct seed saved somewhere, which makes the wrong seed marginally less harmful.

Still, it's definitely a bug, and we will continue to treat any issue in seed phrase logic with gravity. It very nearly fits the description of this bounty by "show[ing] a user a seed phrase on first setup that would not work for later restoring their accounts." Unsure if this counts as "first setup," but the team appreciates your report and will pay out the bounty. Expect a payment via Gitcoin from @danfinlay shortly.

A fix for this issue has been merged in https://github.com/MetaMask/metamask-extension/pull/5229. This bounty will remain open for anyone who can find an issue in production with first-time seed phrase generation logic.

danfinlay commented 5 years ago

Hey @EmanuelKuhn to pay you, you'll need to click "Start work" on the attached bounty via GitCoin.

Sorry @adipurnama83 for removing you, if you do find another instance of this issue, you will be paid out, but I had to remove you so I could pay out Emmanuel for now.

EmanuelKuhn commented 5 years ago

Do I also need to formally submit work through gitcoin?

danfinlay commented 5 years ago

Yeah you do, sorry!

vs77bb commented 5 years ago

Hi @danfinlay just FYI - you're able to pay out @EmanuelKuhn without a submit work action now by using the 'Advanced Payout' feature... this sends a tip to @EmanuelKuhn via his Github username.

Even better in this case might be just simply sending a tip, because it seems like you guys want to keep this open for future hunters.

danfinlay commented 5 years ago

Thanks for the tips!

It will be another bit before I can send, but I will send soon.

danfinlay commented 5 years ago

Aha @vs77bb : This tip is over the per-transaction limit of $500.00. Please try again later or contact support..

Will have to do a normal payout.

danfinlay commented 5 years ago

So that means I do need @EmanuelKuhn to click "submit work" before I can payout.

owocki commented 5 years ago

@danfinlay i just increased your payout amount limit to $5000 if that helps!

gitcoinbot commented 5 years ago

⚡️ A tip worth 10.00000 ETH (1735.47 USD @ $173.55/ETH) has been granted to @EmanuelKuhn for this issue from @danfinlay. ⚡️

Nice work @EmanuelKuhn! Your tip has automatically been deposited in the ETH address we have on file.

danfinlay commented 5 years ago

Paid out: https://etherscan.io/tx/0xa274705d9b4ee1d7965fb62bd8e7009d6cd361442d0396b9ad2da01c74d84b62

owocki commented 5 years ago

Thanks @danfinlay -- do you want to close the issue on Gitcoin ?

danfinlay commented 5 years ago

Nope, the bounty stands for any new takers!

On Sep 13, 2018, at 12:08 PM, Kevin Owocki notifications@github.com wrote:

Thanks @danfinlay https://github.com/danfinlay -- do you want to close the issue on Gitcoin https://gitcoin.co/issue/MetaMask/metamask-extension/3127/1155 ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MetaMask/metamask-extension/issues/3127#issuecomment-421118211, or mute the thread https://github.com/notifications/unsubscribe-auth/AAhIj3SCxiJQ-aTHRT31xrEUeHlUcRqtks5uaq0ogaJpZM4RxRM_.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 313 years, 2 months from now. Please review their action plans below:

1) dunncreativess has started work.

I've noted that MetaMask team endevours to make the Seed recovery process as smooth as possible. While I don't have a specific way to recreate a failure in recovering seed phrases (have tried ethereum-js code I found on Reddit but couldn't recreate their failure) through manual or automated means, I do have some suggestions on how to improve the experience for people facing issues. I've noted that the vast majority of people complaining about their seed phrases are facing issues with properly remembering or inputting their seed phrase, and it's no particular issue with MetaMask at all.. I think I have a contribution that I thought of while trolling these errors, and would like to submit it even for a fraction of the bounty. 2) wazdevelopment has started work.

web phishers bugs detection have experience as a advanced malware detector and security analysis data mining and data recovery 3) andriytyurnikov has started work.

CAUTION

This is a bounty to fix a bug which does not exist. It already consumed time worth thousands of dollars.

STAY AWAY 4) perpat84316 has started work.

Get job done what ever ot takes 5) darkwingduckies has started work.

I will try to replicate this rare but worrisome seed phrase bug using metamask and my previous cryptography experience. 6) esurk99 has started work.

create various test conditions to generate and check seed phrases 7) coderrick has started work.

Will do my best using the information provided to replicate this bug. 8) olumonday has started work.

My Components of an action plan include

A well-defined description of the goal to be achieved Tasks/ steps that need to be carried out to reach the goal People who will be in charge of carrying out each task When will these tasks be completed (deadlines and milestones) Resources needed to complete the tasks Measures to evaluate progress 9) bermolin02 has started work.

ig uunnulkjjj fhiioij yeti ii gjikjh 10) sonightrus has started work.

Установлю приложение на 10 различных смартфонах и на 3 компьютера (включая 1 ноутбук), сохраню сид фразы, после чего переустановлю приложения. 11) naxsun has started work.

I have found an issue where a user can access their original wallet my the seed phrase, but it does not restore any additional accounts that were created in metamask.

So the original Metamask account was created by importing a wallet created on MEW, a seed phrase was created by Metamask.

Additional wallets were created in Metamask, and from what I understand these are tied to the original seed phrase. However, when restoring the account by the seed phrase only the original wallet is restored, but the additional created wallets are no longer there. So would the user loose access to the funds in the newly created wallets?

To be sure: I did not loose any funds, as I just created these additional wallets for test net stuff. I'm not looking for any compenstation. I'm a satisfied user from Metamask and no complaints.

Would this be of interest for you? I am able to reproduce it. 12) angara79 has started work.

Буду грызть гранит науки...пробовать писать исправлять и снова писать.... 13) vivekbirana has started work.

i will run automated tests read the code and try trial and error methods if necessary 14) cdmullins69 has started work.

I already found a bug on coinbase deed phrase 15) zackilo26 has started work.

Im going to look into this and help as much as possible. 16) cjsaveas has started work.

I'd like to give it a try, hope I can finish this job. 17) benkz91 has started work.

Try most websites capable with meta mask and see witch ones link up 18) kukank9 has started work.

I will try to reproduce this bug 19) cmalfesi has started work.

I will try to reproduce using different environments and setting up different parameters and configurations. Also trying to force some code changes on the fly. 20) developer-piyush has started work.

fixing bugd that does'nt exist 21) adipurnama83 has started work.

any bug in passcarse I found there are many bugs in the security of metask 22) ballistic541 has started work.

i will create multiple wallet address, transact betwixt them, and examine code functionality of seed phrase recovery in order to exploit any bugs within source and means of repairing or upgrading functionality. 23) graomelo has started work.

I want to work on this project. I have the requirements and I've found a bug. 24) dausady has started work.

He tenido problemas para restaurar las direcciones y aparte no me deja conectar en Etherscam en su navegador ni en el de Walletconnect 25) mehdi559914 has started work.

tanks for you 😘and a saport for me is a good 26) mrpleerson has started work.

of course I promise to publish in the content 27) fisalayoubi has started work.

I will write out a full report on proof there is a glitch 28) hugos has started work.

I'm a software engineer but I will not be touching any code, as mentioned on the description I'll be showing a manual reproduction that happened to me when trying to restore my Phone account to my browser one, using the same seed phrase, the one phone account was not restored, but rather a completely different one. 29) jochy1873 has started work.

Buenos días trabajar más y mejorar la recuperación de la wallets de META MASK ES MUY CONPLICADO PARA LAS PERSONAS NIEVAS POR EJEMPLO ME PASO A MI YME TARDE DÍAS EN COJERLE EL PASO INCLUSO HAY PERSONAS QUE TODAVÍA NO LA HANPODIDO RECUPERAR 30) reynosog has started work.

buenas tardes, tengo este problema (a veces los usuarios han informado que la frase inicial que se les dio originalmente no restaura sus cuentas originales). Cambie de navegador ya que a la pagina donde necesito vincular con metamask en mi navegador Brave no funcion y en Chrome si !! 31) imyioda has started work.

Personalmente, mi cuenta no se ha restaurado con la frase secreta, o alguien me resuelve el problema o gano el premio 😂 32) momoftwins1 has started work.

I have experienced the issue myself. I’m able to reproduce manually the case: connecting with the same seed phrase under 2 different Chrome profiles shows 2 different wallets under Account 1. 33) ddoubledd84 has started work.

Try it again and check all addresses 34) caunhox001 has started work.

Ve may bay nay diem den la dau 35) andrel2s has started work.

if it really work, you will help me, i will help others. I like people have something who they need have it 36) llm18888333287 has started work.

Ddedddd virgin xdh Zedd birthday x adds Sweden CCS w BBC adds cxx 37) chenggiant has started work.

Will have an automated stress test to reproduce it. 38) chuoils01 has started work.

Tôi sẽ bắt đâug làm công việc thankiu vẻyrymuch 39) xiaoliuhu886 has started work.

错误详情 信息:Incorrect locale information provided 代码:RangeError RangeError: Incorrect locale information provided at new DateTimeFormat () at r.getTranslatedUINoficiations (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui.js:152:88369) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui.js:152:413397 at Array.map () at T (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui.js:152:413339) at ca (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:59367) at jl (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:104449) at bu (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:90053) at pu (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:89978) at iu (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:87326) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:45768 at r.unstable_runWithPriority (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:172:3472) at Vo (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:45477) at Yo (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:45713) at Ko (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:45648) at eu (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:84115) at Object.enqueueSetState (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:75:50429) at t.x.setState (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:136:1461) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:93:48080 at n (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:98310) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:98540 at Array.forEach () at Object.notifyListeners (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:98510) at S (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:102095) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:103236 at Object.confirmTransitionTo (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:98249) at Object.push (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui-libs.js:19:103045) at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/ui.js:152:878661 40) agcaliva has started work.

hi people, i have find that most of the bugs here can be explained by an unnoticed change in BIP implementation in wallet. Dont know if this was the case but here its probably the answer. The BIP implementation just changed so even if you have correct mnemonic phrase you will recover other address, because BIP makes address indexation different for each implementation. So you just need to try previous versions of wallet for recovery.

The explanation its that each BIP says how to index the address, so even if you have same keys it depends in BIP implementation which wallet you will retrieve.

Please confirm if you have your issue solved. Talk me to pay bounty to ramielneitor@yahoo.com.

Each time a new BIP its implemented then previous accounts using previous BIP will not be able to recover using that version. You cant migrate without doing transactions, so the fix will probably add option for set BIP method to be used, and let user try all of them. So to reproduce you just need to install a version that has other BIP implementation from the one that its available in last version. 41) prasniv has started work.

I will using GitHub and vs code 42) luangkhot1 has started work.

I do not have a plan, planed out yet 43) zwitea has started work.

nabil babel wellcomme to my bonis 44) recep9227 has started work.

Siteyi para kazanmayı çözmek istiyorum

Learn more on the Gitcoin Issue Details page.

staccDOTsol commented 5 years ago

@danfinlay

https://goo.gl/44G1Rc

To reproduce:

  1. install a /dist or /builds app to a browser
  2. click MetaMask in browser, use Beta (unsure how to change legacy behavior - willing to learn how)
  3. Accept all EULA etc
  4. 'Import Existing DEN'
  5. Give it a password, and import 'shoudl hat few pupil letter program soon rude ski exhaust brain bleu'
  6. Note that the interface returns "The following provided words are not valid seed words: shoudl,bleu"

We need additional translations for other supported languages other than EN.

https://drive.google.com/file/d/1RwyHcuCvQJPWPIQHws7taXXkpflEXhdL/view?usp=sharing

kumavis commented 5 years ago

@dunncreativess are you suggesting localizing the "the following seed words are not valid seed words" into different languages?

staccDOTsol commented 5 years ago

Yes @kumavis so long as it's accepted as a viable solution to help streamline the seed recovery process and make it more user-friendly.

For lurkers: I'd written @danfinlay on Twitter and as he's away this week and next he'd asked me to contact the team via support@ email address, which I did yesterday.

I'm looking forward to seeing if this will help the user experience as I'd noted MM folks say they're always looking to help make this process easier, but no response from the team as-yet. This solution helps 1. people that obfuscate a word or all the words realize which ones so they can hopefully deobfuscate 2. people that mispelled words they were copying down 3. other chair-->keyboard errors, which I found most of the outstanding Github issues surrounding these issues to involve.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 10.0 ETH (3892.98 USD @ $389.3/ETH) has been submitted by:

  1. @wazdevelopment
  2. @pacamara
  3. @kris30pl
  4. @angara79

@danfinlay please take a look at the submitted work:


wazdevelopment commented 5 years ago

Popup of connect request appears every time when browser restarted even if the website have been accepted before. during payment on meta-mask must refresh to Rinkeby and then main eth network to confirm payment.

wazdevelopment commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done

Work for 10.0 ETH (2166.02 USD @ $216.6/ETH) has been submitted by:

  1. @wazdevelopment

@danfinlay please take a look at the submitted work:

Popup of connect request appears every time when browser restarted even if the website have been accepted before. during payment on meta-mask must refresh to Rinkeby and then main eth network to confirm payment.

how do i find out if i get bounty paid for the work ? thanks

bdresser commented 5 years ago

@wazdevelopment this bounty is specifically for issues related to MetaMask's seed phrase logic, so your bug report does not qualify.

Thanks for pointing this out, though! Please file as a separate issue with additional details (browser, MM version, etc) so we can address it.

staccDOTsol commented 5 years ago

@bdresser was there any word whether my submission was worth part of the bounty? It doesn't point out an issue with the seed phrase logic or code, however it addresses some of the most common issues faced with seed phrase recovery.

Thanks,

bdresser commented 5 years ago

hey @DunnCreativeSS, thanks for opening your issue and pointing out a reasonable UX improvement. But as the original bounty states, we're looking for

a condition in MetaMask's code base, either through automated tests or manual reproduction, where MetaMask would show a user a seed phrase on first setup that would not work for later restoring their accounts.

logvik commented 5 years ago

This issue does not reproduce. Tested on Windows Firefox and Chrome with version 5.0.3

hatgit commented 5 years ago

I noticed 12 dependencies with the word "stream" in https://github.com/MetaMask/metamask-extension/blob/develop/package.json and sharing this out of caution in case MetaMask isn't already aware in case it applies, with regard to the exploits found in the event-stream NPM package (which I just saw headlines that bitpay/copay wallets were affected): https://github.com/dominictarr/event-stream/issues/116

tmashuang commented 5 years ago

@hatgit as FallingSnow has mentioned, reverting/updating/pinning to event-stream@3.3.4.

metamask-extension [develop] :> npm ls event-stream flatmap-stream
metamask-crx@0.0.0 /Users/Desktop/metamask-extension
├─┬ gulp-livereload@4.0.0
│ └── event-stream@3.3.4
└─┬ shell-parallel@1.0.3
  └─┬ ps-tree@1.1.0
    └── event-stream@3.3.4  deduped

Thanks for the report and we are continuing to monitor these packages that have the dependency.

hatgit commented 5 years ago

@hatgit as FallingSnow has mentioned, reverting/updating/pinning to event-stream@3.3.4.

metamask-extension [develop] :> npm ls event-stream flatmap-stream
metamask-crx@0.0.0 /Users/Desktop/metamask-extension
├─┬ gulp-livereload@4.0.0
│ └── event-stream@3.3.4
└─┬ shell-parallel@1.0.3
  └─┬ ps-tree@1.1.0
    └── event-stream@3.3.4  deduped

Thanks for the report and we are continuing to monitor these packages that have the dependency.

Great! Just saw this: https://github.com/MetaMask/metamask-extension/commit/486f9931c469ac1829b6f433ad3ebdc11821df22

gitcoinbot commented 5 years ago

💰 A crowdfund contribution worth 0.00500 ETH (0.54 USD @ $107.31/ETH) has been attached to this funded issue from @treebeard.💰

Want to chip in also? Add your own contribution here.

andriytyurnikov commented 5 years ago

Guys this is just a hoax - while bug reporters tell all kinds of stories - mentioned accounts are empty this days. So you place a bounty on a bug which does not exist and more and more people waste more and more time in this blackhole, as there is no evidence on blockchain to support existence of the bug - please consider closing the issue, and consider not having bounties of such nature.

Like check this out final comments of #3258 , sure humans are humans and we all make mistakes, but as it costs nothing to create a ticket - people do it for all sorts of reasons. Another example - dude in comments offering 20% of his balance as a bounty - guess what is a balance this days - correct - zero.

BGzetro commented 5 years ago

@andriytyurnikov

My address shows 0 funds as I discovered what the bug caused to happen so was able to retrieve my funds by myself that is why I did not give away the 20%.

If my funds were freed by someone discovering how I could then I would have.

I gained nothing from raising a ticket other than I got my funds back during the process on my own.

So please tell why It is a hoax if I gained nothing from it?

I believe the bug has not been fixed but am aware of what is needed to be done to get funds back if it occurs again.

BGzetro commented 5 years ago

There have been reports of people having had the same issue as me.

They gained nothing from comments and raising tickets if they did not recover their funds, so are they a hoax to?

@andriytyurnikov

andriytyurnikov commented 5 years ago

You got funds back because you used wrong 12 words, dude! And other reports are coming from dudes as [censored]... wrong as you @BGzetro

BGzetro commented 5 years ago

Where is the palm face emoji when you need one??

@andriytyurnikov Yes in my case technically the seed phase I was shown upon new account creation was the wrong seed phase to recover the funds of the addresses originally shown tied to that account, although that should not have been the case! That is why I entered it to try to recover my funds as it was suppose to be the correct one.

The 12 word seed phase I enter to recover my funds of my new account addresses, was the 12 word seed phrase shown upon account creation from an old account, which I had not used in a long long time.

If anyone else has had the same issue as I had, I recommend trying to enter the 12 word seed phase of your previous metamask account to recover your funds, if the seed phase you were shown on new account creation did not recover the correct addresses supposedly tied to your new seed phrase.

andriytyurnikov commented 5 years ago

@BGzetro in this thread you are OFF TOPIC as this particular ticket is about bounty program, and i've highlighted moral issues with topics of such nature:

The bounty will be paid to anyone who can demonstrate a condition in MetaMask's code base, either through automated tests or manual reproduction, where MetaMask would show a user a seed phrase on first setup that would not work for later restoring their accounts.

BGzetro commented 5 years ago

@andriytyurnikov I'm only off topic because you were referring to my comment in another ticket.

I've never looked a meta mask's code base, and only have little skill with programming, so have not attempted to look into the code base. I have not been able to reproduce the bug either on one attempt I've made.

I don't plan on trying to reproduce it either. I'm not looking for no bounty payment. Life is too busy for me. I'm just happy I have my funds now. I have not used meta mask since withdrawing my funds and don't plan to use it again in the near future.

pacamara commented 5 years ago

@danfinlay: Hi!

TLDR: Slow/unresponsive browser may skip key onboarding screens, in earlier versions of Metamask

Some versions of Metamask can be induced to skip the "Your unique account image", "Secret Backup Phrase" and "Confirm Your Secret Backup Phrase" screens during apparently successful account setup. Reproduce steps:

Spamming console.warn is the easiest repro. But have also repro'd by spamming document.write, and just with a pure maths calculation. I.e. this issue is to do with timing and CPU load, not some pathological artifact of the console log.

It's not clear if the root cause of the issue has been fixed in the latest version 6.3.1, or whether the design changes to remove the Account Image screen from onboarding, and always displaying the full page login screen even when opened in popup mode are just masking the underlying issue.

pacamara commented 5 years ago

Filed above report as separate issue https://github.com/MetaMask/metamask-extension/issues/6496 for better visibility/tracking.

dpazdan commented 4 years ago

possibly related #7246

flood793 commented 4 years ago

I'm having this problem here: https://github.com/MetaMask/metamask-extension/issues/7866

Devilla commented 4 years ago

is it still open issue?

Eddie-Wachowski commented 4 years ago

So i am pretty sure that I also have fallen victim to this bug, even if I´m on Metamask Version 7.7.2. and first Version this was reported was 4.x.x if I remember right?

Pretty much the same story as BGzetro... I installed Metamask, transferred about 100 Euros of ERC20 tokens to Account 1 (never created any additional accounts). Next time trying to use Metamask, it shows me an empty acc. Tried to restore from my written down seed phrase, again leading to an empty account (probably the same one), with a different Address than where i have sent my tokens to. MM Version: 7.7.2 Chrome Version: 79.0.3945.130 (Official Build) (64-Bit) Address I sent the tokens to: https://etherscan.io/address/0x8de8c5612ae5390800e923bb0b7328ffbaf4e4fe#tokentxns

Address (Account 1) I currently have access to (but is empty): 0xa8D9b7C345A7431ed9420B2790e1B77BD71D0418

Is there a way to determine cryptographically whether these 2 addresses are derived from different seeds?

And do you see any way for me to get my tokens back (Vault hacking, even If the Vault probably would be overwritten by me restoring from the seed phrase, or something else)?

Haven't really been warned that your software is in such an "experimental" state, after all. (pls excuse my bitterness, but spoiling € 100 is not really good news for me)

I don't really know where the best place to post this issue is, so feel free to move this post or tell me where I should rather post it.

danfinlay commented 4 years ago

Is there a way to determine cryptographically whether these 2 addresses are derived from different seeds?

No, there's no way to correlate accounts just from the address.

And do you see any way for me to get my tokens back (Vault hacking, even If the Vault probably would be overwritten by me restoring from the seed phrase, or something else)?

No, if you don't have a copy of your vault in a previous state where you had this account, there is no hacking that can be done on one vault to generate another vault's accounts.

Haven't really been warned that your software is in such an "experimental" state, after all.

We have no concrete evidence that this bug ever occurred. No one has been able to produce a new hypothetical scenario where this bug would occur in two years.

I don't really know where the best place to post this issue is, so feel free to move this post or tell me where I should rather post it.

Since you aren't submitting a new possible solution to the bug bounty, you could just email support@metamask.io for any other ideas of how to try to derive the account you think you should have, but I think it's very likely that you're out of luck, sorry.

mryellow commented 4 years ago

Better sanitation of user input would go a long way to reducing reported issues and confusion surrounding them.

https://github.com/MetaMask/metamask-extension/issues/8171

sure humans are humans and we all make mistakes,

When presented with poor validation and sanitation of user input, resulting in poor UX.

Naxsun commented 3 years ago

I have found an issue where a user can access their original wallet by the seed phrase, but it does not restore any additional accounts that were created in metamask.

So the original Metamask account was created by importing a wallet created on MEW, a seed phrase was created by Metamask.

Additional wallets were created in Metamask, and from what I understand these are tied to the original seed phrase. However, when restoring the account by the seed phrase only the original wallet is restored, but the additional created wallets are no longer there. So would the user loose access to the funds in the newly created wallets?

To be sure: I did not loose any funds, as I just created these additional wallets for test net stuff. I'm not looking for any compenstation. I'm a satisfied user from Metamask and no complaints.

Would this be of interest for you? I am able to reproduce it.

roo-shy commented 3 years ago

referencing customer: https://consensys.zendesk.com/agent/tickets/64454

Example my seed phase is 1 to 12 words in that order opens my wallet , now if I was to switch word 1 & 7 round I can open another wallet up .

Screen Shot 2020-11-16 at 10 24 04 AM
luisotravez commented 3 years ago

I lost my wallet and my seed pharse restores an empty one as well:

Original wallet: 0x00050EDCb938379016a7CF194b0917e0Fc74ce2C

Restored one: 0xBAb288D7563fC3c91D01cD706794f2E818Eb05bB

It happened after I created a wallet on the RSK Mainnet. I used that wallet so I could buy SOV on the Sovryn dapp (https://live.sovryn.app/), and everything worked just fine. A couple of days later, I forgot the password, tried to restore, and now I have that empty wallet.

mathew17771 commented 2 years ago

As part of our commitment to the best security we can offer, the MetaMask team is planning to continuously offer a bug bounty on our seed phrase functionality, we are starting the bounty at 1 ether, but anyone is free to add to the bounty as they like.

As we have written about before #2577, and have awarded a bounty for in the past, sometimes users have reported that the seed phrase they were originally given does not restore their original accounts.

We have continued to receive rare but concerning accounts of similar experiences: #2904 #3042 #4756 #4697

The bounty will be paid to anyone who can demonstrate a condition in MetaMask's code base, either through automated tests or manual reproduction, where MetaMask would show a user a seed phrase on first setup that would not work for later restoring their accounts.

Thanks for your interest and participation, we're available to answer any questions about our key management here.

Hey I’ve had the same issue where my seed phrase seems to invalid and I’m sure I have the same phrase you guys provided me with is there anyways you guys could help me with this?

gnewfield commented 2 years ago

@luisotravez I encountered the exact same issue while trying to use Sovryn. Were you able to resolve it? Would really appreciate your insight.

luisotravez commented 2 years ago

Not at all. But I think it is not an issue with Soveryn in particular, but with Metamask. Other people in the SOV community did not report this issue with other wallets. I regret using Metamask and Will not recommend it to anyone I help getting started in crypto.

El mar., 8 jun. 2021 11:37 a. m., gnewfield @.***> escribió:

@luisotravez https://github.com/luisotravez I encountered the exact same issue while trying to use Sovryn. Were you able to resolve it? Would really appreciate your insight.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MetaMask/metamask-extension/issues/3127#issuecomment-856921882, or unsubscribe https://github.com/notifications/unsubscribe-auth/AP5IB4WZPFPJPVNJLJB7MW3TRZBKXANCNFSM4EOFCM7Q .