skills/case-studies/parity-multisig/SKILL.md
Case study of the 2017 Parity Multisig Freeze: delegatecall + self-destruct exploit freezing ~$150M
npx skillsauth add apegurus/solidity-argus parity-multisigInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
In November 2017, a user accidentally triggered a vulnerability in the Parity Multisig wallet library contract. By calling an uninitialized initWallet function, the user became the owner of the library contract and subsequently called kill(), which executed selfdestruct. This froze approximately 513,000 ETH (worth ~$150M at the time) across 587 wallets that depended on this library.
The Parity Multisig wallets used delegatecall to execute logic from a shared library contract. However, the library contract itself was not initialized. This allowed any user to call the initWallet function on the library contract directly, making them the owner of the library. Once they were the owner, they could call the kill function, which contained a selfdestruct instruction.
initWallet() on the library contract, becoming its owner.kill() on the library contract.selfdestruct, removing its code from the blockchain.delegatecall to this library now had no logic to execute, effectively freezing all funds held in them.0x05f5c113c130f928d4d0d261046c5511846909b77060ef6568bf9158ad312a060x47f7cff3ad8733831a0e273108ef239bb0d0657da3a4279b1d17ac2616a12487selfdestruct or init.delegatecall to a contract that can be destroyed or modified by unauthorized users.selfdestruct in library contracts.delegatecall is immutable and properly initialized.testing
Specialist profile for mechanically applying the attack-vector deck and classifying vectors as skip, drop, or investigate.
tools
Specialist profile for libraries, helpers, base contracts, adapters, encoders, wrappers, and integration glue.
testing
Specialist profile for rounding, scale, decimal, downcast, and arithmetic accounting edge cases.
testing
Specialist profile for extracting conservation laws and state couplings, then searching for violating paths.