Randstorm Vulnerability Exposes 2011-2015 Cryptocurrency Wallets
Blockchain security experts at Unciphered have identified a series of issues related to the popular JavaScript library BitcoinJS, which is used in many browser-based cryptocurrency wallets. These issues, collectively known as Randstorm, pose a significant threat to wallets created between 2011 and 2015, potentially allowing attackers to recover passwords and gain unauthorized access to usersβ assets.
What Is the Randstorm Vulnerability?
According to researchers, Randstorm refers to βa set of bugs, design decisions, and API changes that, when combined, drastically reduced the amount of randomness in browsers during a specific period (2011-2015).β This lack of randomness made it easier for attackers to guess cryptographic keys generated by affected wallets.
Unciphered estimates that over $1 billion in cryptocurrency (about 1.4 million BTC) is stored in vulnerable wallets that were generated using potentially weak cryptographic keys.
Discovery and Background
The issue was first discovered by Unciphered experts in 2022 while assisting a client who was unable to access their wallet on Blockchain.com. Notably, a security researcher known as ketamine had written about this vulnerability back in 2018, but it did not receive much attention at the time.
Technical Details
The core of the problem lies in the use of the open-source BitcoinJS library, which is widely used for developing browser-based cryptocurrency wallets. Specifically, the vulnerability is linked to the use of the SecureRandom()
function from the JSBN library, combined with cryptographic weaknesses in the browser implementation of Math.random()
during that era. This combination allowed for the generation of weak pseudo-random numbers. In March 2014, BitcoinJS developers stopped using JSBN to address this issue.
As a result, the lack of entropy could be exploited to perform brute-force attacks to recover private keys from wallets generated with BitcoinJS or related projects. Wallets created before March 2012 are especially vulnerable and easier to compromise.
βThe defect is built into wallets created with this software, and it will remain there forever unless the funds are moved to a new wallet created with different software,β Unciphered warned.
Which Wallets Are Affected?
A list of wallets that use or have used BitcoinJS can be found below:
-
- Blockchain.com (older versions)
- Other browser-based wallets built on BitcoinJS between 2011 and 2015
If you have a wallet created during this period using BitcoinJS or a related project, it is strongly recommended to move your funds to a new wallet generated with up-to-date, secure software.