ChainBleedv0.1 · open intel
← back to feed·ETHLOGIC2017-11-09 · 8y ago
Incident · DEFILLAMA

Parity Multisig

Contract not initialized
Estimated loss
$150.00M
VERDICT —AUDIT-CATCHABLE
An unguarded public initializer combined with a SELFDESTRUCT gated only by post-init ownership is a structural source-level red flag any competent reviewer (or Slither/Mythril) would have flagged. The Parity team itself had a pending PR (issue #6995) to add this exact protection before the incident.
▰ METHOD
Contract not initialized
LOGICBYTECODE CATCHABLEAI SCANNABLE
Root cause

The WalletLibrary contract — the shared logic contract that every Parity multisig wallet delegatecall'd into — was itself an uninitialized contract instance on-chain. Its initWallet function, which sets the m_owners and m_required state, had no constructor-side enforcement and no initializer guard. User devops199 invoked initWallet directly on the library address, becoming sole owner, then called the kill() function (a wrapper around SELFDESTRUCT) gated by onlyowner. Because every deployed multisig was a thin proxy that delegatecall'd into the now-destroyed library address, all 587 dependent wallets lost their executable code and ~513,774 ETH (~$150M at the time) became permanently frozen. The proximate vulnerability class is missing initializer protection on a public delegatecall target; the deeper class is a SELFDESTRUCT reachable from caller-controlled state.

▰ PROOF OF CONCEPT
DEFIHACKLABS
src/test/2017-11/Parity_kill_exp.sol
view forked test on github ↗

Reproducible Foundry test fork from SunWeb3Sec/DeFiHackLabs. Clone the repo, run forge test against the file path above, and replay the exploit against a mainnet fork at the historical block. Use for reproduction only — not for live targets.

Forensic narrative

Classification: Protocol Logic. Technique: Contract not initialized. Target type: DeFi Protocol. Affected chains: Ethereum. Implementation language: Solidity.

Primary source
https://www.parity.io/blog/a-postmortem-on-the-parity-multi-sig-library-self-destruct/
Sourced from
DefiLlama Hacks dataset · api.llama.fi/hacks
Technical record
chain
ethereum
protocol
Parity Multisig
bug_class
logic
date_occurred
2017-11-09
loss_usd
$150,000,000
classification
Protocol Logic
technique
Contract not initialized
target_type
DeFi Protocol
language
Solidity
source_id
dl:adhoc:parity-multisig:1510185600
Related — same bug class· logic
2026-05-13
28d ago
TRON
Transit Finance
Deprecated Smart Contract Exploit
logic
$1.88M
UNRATED
2026-05-13
28d ago
ETH
TAC Cross-Chain Layer (TON Side)
Contract Vulnerability
logic
$2.80M
UNRATED
2026-05-13
28d ago
ETH
Transit Finance
Contract Vulnerability
logic
$1.88M
UNRATED
2026-05-12
29d ago
ARB
Aurellion
Uninitialized Proxy Exploit
logic
$456.0K
UNRATED
2026-05-12
29d ago
BSC
SQ Protocol
Acces Control Exploit
logic
$346.0K
UNRATED
2026-05-12
29d ago
BSC
SQ Protocol
Contract Vulnerability
logic
$346.1K
UNRATED
ChainBleed — live web3 threat intelligence