Unciphered, a crypto recovery firm, has uncovered a critical vulnerability in BitcoinJS, a JavaScript library used to generate cryptocurrency wallets. This flaw, named “Randstorm,” affects wallets created between 2011 and 2016. The vulnerability stems from insufficient randomness in the private key generation process due to weaknesses in the SecureRandom function and browser-based pseudo-random number generators like Math.random. As a result, private keys generated during this period are susceptible to brute-force attacks, putting nearly $1 billion worth of cryptocurrency at risk[1][3][5].
BitcoinJS developer Stefan Thomas acknowledged the issue, explaining that the library was initially developed as a hobby and relied heavily on existing code from Stanford University. He apologized for the oversight, which left wallets vulnerable until fixes were implemented in March 2014[3][5]. Blockchain.com and other services that used BitcoinJS have since addressed the problem by improving entropy in their random number generators[3][7].
The vulnerability is not entirely new; discussions about weak private key generation in Bitcoin wallets date back to 2013 on forums like Bitcointalk. The flawed process involved generating cryptographic keys with less than 48 bits of entropy and passing them through outdated algorithms like RC4, further increasing predictability[3][5].
Summary: Unciphered discovered a major vulnerability in BitcoinJS-built wallets created between 2011 and 2016 due to insufficient randomness in private key generation. This flaw exposed approximately $1 billion worth of cryptocurrency to potential hacks. While fixes have been implemented over time, the issue highlights the importance of robust cryptographic practices in securing digital assets[3][5][7].
The Randstorm vulnerability specifically affects Bitcoin wallets created between 2011 and 2015 by exploiting weaknesses in the BitcoinJS library, which was used to generate these wallets. The vulnerability arises from the combination of two main issues:
- Insufficient Randomness in Key Generation: BitcoinJS relied on the SecureRandom() function and browser-based pseudo-random number generators like Math.random(), which were inadequate for generating sufficiently random private keys. This resulted in keys with less entropy than required, making them more predictable and susceptible to brute-force attacks[1][5].
- Browser Weaknesses: During the period from 2011 to 2015, major web browsers had weaknesses in their pseudo-random number generators, further reducing the randomness of the generated keys. This made wallets created before March 2012 particularly vulnerable[1][5].
The impact of Randstorm is significant, as it potentially exposes millions of wallets to hacking risks, with an estimated 1.4 million Bitcoins at risk, valued at over $1 billion[1][3]. While the vulnerabilities in BitcoinJS were fixed in March 2014, wallets created before this time remain vulnerable unless their funds are transferred to new, securely generated wallets[2][3].
The potential consequences of not addressing the Randstorm vulnerability are significant and far-reaching:
- Financial Loss: The vulnerability could lead to the theft of millions of dollars worth of cryptocurrency. Estimates suggest that approximately 1.4 million Bitcoins are at risk, valued at over $1 billion, depending on Bitcoin’s market price[1][2].
- Security Breaches: The lack of randomness in private key generation makes wallets susceptible to brute-force attacks. If exploited, attackers could gain unauthorized access to wallets, compromising user assets[1][3].
- Long-Term Risk: Even though the vulnerabilities in BitcoinJS were fixed in 2014, wallets created before this time remain vulnerable unless their funds are transferred to new, securely generated wallets. This means that users must take proactive steps to secure their assets[2][4].
- Broader Security Implications: The Randstorm vulnerability highlights broader issues with software supply chain security, particularly the risks associated with dependencies on open-source libraries. This emphasizes the need for continuous vigilance and updates in digital wallet management[1][3].
- Reputation and Trust: Failure to address these vulnerabilities could erode trust in cryptocurrency platforms and services that used the BitcoinJS library, potentially affecting their reputation and user base[3][4].
In summary, not addressing the Randstorm vulnerability could lead to substantial financial losses, security breaches, and long-term risks for users of affected wallets, as well as broader implications for the security and trustworthiness of cryptocurrency platforms.
Citations:
[1] https://www.sk-cert.sk/en/warning-of-critical-randstorm-vulnerability-in-crypto-wallets/index.html
[2] https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
[3] https://www.netizen.net/news/post/3610/understanding-the-randstorm-vulnerability-in-cryptocurrency-wallets-a-comprehensive-analysis
[4] https://www.techtarget.com/searchsecurity/news/366559456/Cryptocurrency-wallets-might-be-vulnerable-to-Randstorm-flaw
[5] https://www.unciphered.com/blog/randstorm-you-cant-patch-a-house-of-cards
[6] https://www.binance.com/sl/square/post/158526394281
[7] https://www.binance.com/ar/square/post/226500193745
[8] https://www.edureka.co/community/299041/what-most-common-vulnerability-associated-with-iot-devices
Citations:
[1] https://thehackernews.com/2023/11/randstorm-exploit-bitcoin-wallets.html
[2] https://www.bitdefender.com/en-us/blog/hotforsecurity/major-vulnerability-leaves-millions-of-old-crypto-wallets-in-jeopardy
[3] https://www.kaspersky.com/blog/vulnerability-in-hot-cryptowallets-from-2011-2015/49943/
[4] https://gizmodo.com/old-bitcoin-wallets-security-flaws-randstorm-unciphered-1851020470
[5] https://www.netizen.net/news/post/3610/understanding-the-randstorm-vulnerability-in-cryptocurrency-wallets-a-comprehensive-analysis
[6] https://www.unciphered.com/blog/randstorm-you-cant-patch-a-house-of-cards
[7] https://www.darkreading.com/application-security/randstorm-bug-millions-of-crypto-wallets-open-to-theft
Citations:
[1] https://www.investing.com/news/cryptocurrency-news/unciphered-identifies-critical-flaw-in-early-bitcoinjs-wallets-93CH-3237427
[2] https://vault12.com/learn/
[3] https://www.htx.com/uk-ua/feed/community/2728009/
[4] https://news.ycombinator.com/item?id=30260787
[5] https://www.bitdefender.com/blog/hotforsecurity/major-vulnerability-leaves-millions-of-old-crypto-wallets-in-jeopardy/
[6] https://rdw.rowan.edu/context/oer/article/1024/viewcontent/CSP_Python_09162021.pdf
[7] https://cryptorank.io/news/feed/65b2f-bitcoin-wallets-created-before-2016-may-be-vulnerable-billions-at-risk.htm
[8] https://github.com/thoruto/stock-prediction-cmu/blob/master/redditSentimentsTitle.csv
[9] https://unchainedcrypto.com/1-billion-in-old-bitcoin-wallets-vulnerable-to-exploits-report/