Parity Hack
What happened
In July 2017, an attacker took ownership of deployed Parity multisig wallets and drained 153,037 ETH from three wallets, according to OpenZeppelin. The wallets exposed an initialization function that could overwrite their owners. This theft preceded the separate November 2017 destruction of a shared Parity library, which froze funds.
The initialization function lacked a guard against repeated calls. Delegating arbitrary calls to the library exposed that function in each wallet’s storage context.
How it happened
- Parity wallets forwarded unmatched calls to a shared library using
delegatecall. - The attacker called
initWallet, which remained publicly reachable after initialization. - The call replaced the owners with the attacker and required only one confirmation.
- The attacker called
executeto transfer the wallet balances.
Protocol details
Evidence
- report Report blog.openzeppelin.com
- analysis DeFiLlama defillama.com
- analysis The Parity Wallet Hack Explained openzeppelin.com
Understand the attack patterns
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.