On November 6, an unknown actor exploited a bug in a contract that serves a library function for multi-signature hardware cryptocurrency wallets made by the company Parity, causing the library contract to effectively suicide. As a result, an unofficially estimated amount of over 500,000 Ether (worth just under $150 million at press time) is currently frozen. It is presently unclear how the holders of these digital assets might eventually regain access to them, whether it be through some repairs to Parity’s contracts or some other mechanism.
In a security alert, Parity informed its users that the problem affects users with multi-signature wallets deployed after July 20, 2017. On July 19, a hacker exploited a vulnerability in Parity’s client and made off with approximately 153,000 ETH, worth about $30.5 million at the time. Benevolent hackers belonging to the so-called “White Hat Group” (WHG) identified the vulnerability and drained several thousand ETH into wallets of their own with the intention of returning it. According to Parity’s alert, which the company categorized as “critical,” a security flaw persisted in the new version of Parity’s library contract that made it “possible to turn the Parity Wallet library contract into a regular multi-sig wallet and become an owner of it by calling the initWallet function.” As a result of the bug being exploited, “no funds can be moved out of the multi-sig wallets” at the moment.
As for the motives of the user, who some in the cryptosphere have referred to as an “attacker,” they remain unconfirmed. According to Parity’s security alert, the company believes the incident to be accidental. In the firm’s Gitter channel, Parity developer Tomasz Drwięga offered a slightly different take: “We're suspecting that the attacker wasn't really aware of the consequences of suiciding the library. And later probably tried to drain some of them, without success.” “Them” refers to a series of contracts that received calls shortly after the suicide from an address that has been linked to the unknown actor, suggesting malfeasance.
Someone claiming to be the actor took to GitHub under the name devops199, ostensibly to seek advice and offer explanations. Referring to the library contract, the user said,
“Hello, first of all i'm not the owner of that contract. I was able to make myself the owner of that contract because its uninitialized.
These (https://pastebin.com/ejakDR1f) multi_sig wallets deployed using Parity were using the library located at "0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4" address. I made myself the owner of "0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4" contract and killed it and now when i query the dependent contracts "isowner(<any_addr>)" they all return TRUE because the delegate call made to a died contract.
I believe some one might exploit.”
Using the same handle on the Gitter channel linked above, the user described him or herself as an “eth newbie..just learning” and expressed fears of getting “arrested for this.” To another user on the board who had proposed that devops199 should be rewarded with a bug bounty for identifying the code vulnerability, the actor replied, “i'm not expecting any bug bounty.. i only hope the eth community [somehow figures out a solution] for this,” and suggested that they simply employed a process of trial and error to discover that the library contract was not initialized, allowing said user to take control of it.
In light of Parity’s latest woes, white hat hacker Jordi Baylina took to Twitter to announce:
ETHNews has asked Parity for confirmation of this but, as of publication, has not received a response.
When reached for comment, the WHG said that it has “been scanning the Blockchain all day looking for other vulnerable contracts”
Among the wallets affected is one containing about $90 million worth of ETH raised in a token offering by Polkadot. Polkadot’s team includes Ethereum co-creator and Parity Technologies founder and CTO Gavin Wood. A Medium post by the Web3 Foundation, which Wood also founded and which is overseeing the Polkadot project, relates that “The affected multi-sig wallet does not contain all of the Web3 Foundation’s funds; our ability to build Polkadot as planned and to the original timetable has not been affected.”
In a July 2017 Reddit post, Ethereum co-creator Vitalik Buterin opined that “It's hard for regular users to hold large amounts of funds without running substantial risks of theft or loss due to theft or loss of their private keys.” Given Polkadot’s potential losses, it appears that the challenge is not unique to regular users.