Parity Hack
What happened
Parity multisig wallet has been attacked by a hacker in two transactions, taking profit of $34M.
The attacker had drained 153,037 ETH from three high-profile multi-signature contracts used to store funds from past token sales. The attacker's address:
https://etherscan.io/address/0xb3764761…db4d32
The attacker sent two transactions to each of the affected contracts: the first to obtain exclusive ownership of the MultiSig, and the second to move all of its funds.
1st transaction (call to initWallet):
https://etherscan.io/tx/0x9dbf0326…ef75ec
2nd transaction:
https://etherscan.io/tx/0xeef10fc5…a7be7c
This function was probably created as a way to extract the wallet’s constructor logic into a separate library. The wallet contract forwards all unmatched function calls to the library using delegatecall
This causes all public functions from the library to be callable by anyone, including initWallet, which can change the contract’s owners. Unfortunately, initWallet has no checks to prevent an attacker from calling it after the contract was initialized. The attacker exploited this and simply changed the contract’s m_owners state variable to a list containing only their address, and requiring just one confirmation to execute any transaction:
https://etherscan.io/tx/0x9dbf0326…ef75ec
After that, the attacker executed the function to send all funds to an account controlled by the attacker:
https://etherscan.io/tx/0xeef10fc5…a7be7c
Case & protocol details
Evidence & learning
Sources and on-chain records
- report Report blog.openzeppelin.com
Practice this exploit pattern safely
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.