Parity Hack

Estimated theft $30.0M
Ethereum
Unprotected wallet initialization

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.

Technical root cause

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

  1. Parity wallets forwarded unmatched calls to a shared library using delegatecall.
  2. The attacker called initWallet, which remained publicly reachable after initialization.
  3. The call replaced the owners with the attacker and required only one confirmation.
  4. The attacker called execute to transfer the wallet balances.

Protocol details

Classification Access Control
Protocol Type Exploit/Other
Implementation language Solidity
Protocol links Website @ParityTech

Understand the attack patterns

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.