A popular offline wallet-generating website, WalletGenerator.net, may have been compromised via an ingenious backdoor, which could result in undesirable use of users wallets, according to a security researcher.
The potential issue concerns the process used to generate ‘random’ input to ensure that each wallet is unique, according to the researcher from MyCrypto. Up until 17 August, 2018, the open-source code on the WalletGenerator.net GitHub account was exactly the same as on the website. However, changes were made to the website code after that date, which meant that generated keys were potentially not unique.
"We investigated the differences by running a diff between the GitHub code and the server code and noticed (among other things) that an XHR request is being performed to grab the coin image," researcher Harry Denley explained in a blog post. "This is strange because the coin image is already downloaded by your browser when you load the HTML page—there should be no need to request it again".
It was using the image data to seed the random number generator function, he explained. "This immediately raised eyebrows because the SecureRandom function should be taking input from the user’s browser / interactions, not from an image or server. Seeding it with data from the server compromises the integrity of the randomness, potentially making the keys generated non-random or producible," Denley said.
"You get identical keys if you run the generation process with and without refreshing. After x timeframe, your image hash changes so you get different keys," he explained the situation in a tweet. "There were differences in the code on the server to GitHub which first raised suspicion, then we investigated."
In perhaps the most concerning twist, having notified the website’s owner about the potential issue, the code was modified back to the original. "In this strange turn of events, we still have no idea whether the current site owner is the malicious party, if the server is insecure, or both. We’re still considering this highly suspect and still recommending users who generated public / private keypairs after 17 August, 2018, to move their funds," said the blog post.
Rudy Bouwman, Chief Marketing Officer of crypto-currency DigiByte, alerted users to the potential issue on Twitter, stating, "Everyone needs to upgrade their DigiByte blockchain core client ASAP to v7.17.2".
The GitHub code itself is not malicious or known to be vulnerable, and in fairness the WalletGenerator.net website does recommend using the GitHub version in a prominent ‘security checklist’ on the homepage, stating: "use the download link at the bottom of this page to download the ZIP file from GitHub and run this generator offline as a 'local' HTML file."
While the complex nature of this compromise is unusual, the world of crypto-currencies is far from immune to costly incidents. Popular crypto exchange Binance lost £31.5 million earlier this month due to an as-yet unexplained hack that emptied the exchange’s ‘hot wallet’ in a series of carefully structured transactions designed not to trigger trading alarms. The Financial Conduct Authority recently warned that scams targeting would-be crypto investors in the UK have tripled in the last twelve months, reaching nearly £28 million.