It has long been known that JavaScipt's Math Functions are not up to a good enough standard to be used in Cryptography.  In particular the random function has many documented flaws easily available with a quick google search.

It appairs that someone has exploited the weaknesses and stolen bitcoins from people that used brainwallet.org to generate paper wallets.

In a post earlier today reddit user LostAllOfMyBtc said that "35 of my BTC gone. PC not compromised.".  The user went on to explain that the bitcoins were stored in 18 different bitcoin addresses that were generated using brainwallet.org's random button.

The BrainWallet.org's "Random" button uses JavaScript's Math.random() function to generate private keys.  While it has been hypothesised in he past that because of the low entropy in JavaScript's Math.random() someone could re-generating private keys this, to my knowledge, is the first time that it has appeared to happen.

The story however does take an odd twist when another reddit user (named btcrobinhood) asked LostAllOfMyBtc to prove that he did indeed own the bitcoin (by signing a message using one of keys) and then returned the bitcoins.  While people may applaud btcrobinhood for his actions it should be remembered, the bitcoin were only returned after the user noticed they were missing.  We don't know how many other peoples bitcoins he has stolen using this method.

It is the morel equivalent of opening other peoples physical wallets and taking the cash found within.

A quick bit of advice from me to you, if you have used any online generator of bitcoin addresses (not just BrainWallet.org) check your balances and immediately transfer the bitcoins to another wallet.



Comments

comments powered by Disqus