ChainBleedv0.1 · open intel
← back to feed·ETHREENTRANCY2016-06-17 · 9y ago
Incident · DEFILLAMA

The DAO

Reentrancy
Estimated loss
$60.00M
VERDICT —AUDIT-CATCHABLE
This is the founding example of SWC-107 and the entire reason Checks-Effects-Interactions is doctrine. Any modern audit pipeline (Slither, manual review, even basic invariant tests) would flag the external call before the state update. Caught by any 2026-era auditor on the first pass.
▰ METHOD
Reentrancy
REENTRANCYBYTECODE CATCHABLEAI SCANNABLE
Root cause

The DAO's splitDAO() function let a token holder fork off into a child DAO, transferring their share of ether to the new DAO contract via a call to withdrawRewardFor(msg.sender) before zeroing the caller's balances[msg.sender]. withdrawRewardFor in turn invoked payOut(), which executed a raw `recipient.call.value(amount)()` against the caller's address. Because Solidity's .call forwarded all remaining gas and the caller was a contract, its fallback function ran inside the still-open splitDAO frame and re-entered splitDAO with the same parameters. The balance had not yet been zeroed (the assignment came after the external call — the canonical Checks-Effects-Interactions violation), so each recursive frame moved another tranche of ether to the attacker's child DAO. The attacker drained ~3.64 million ETH (about $60M at the time) into a child DAO that, by The DAO's own rules, was locked for 28 days — a window that catalysed the contentious July 2016 hard fork creating ETH/ETC.

Forensic narrative

Classification: Protocol Logic. Technique: Reentrancy. Target type: DeFi Protocol. Affected chains: Ethereum. Implementation language: Solidity.

Primary source
https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
Sourced from
DefiLlama Hacks dataset · api.llama.fi/hacks
Technical record
chain
ethereum
protocol
The DAO
bug_class
reentrancy
date_occurred
2016-06-17
loss_usd
$60,000,000
classification
Protocol Logic
technique
Reentrancy
target_type
DeFi Protocol
language
Solidity
source_id
dl:adhoc:the-dao:1466121600
Related — same bug class· reentrancy
2026-04-28
1mo ago
ETH
BCB
Reentrancy — classic call-before-state-update
reentrancy
$39.8K
UNRATED
2026-03-06
3mo ago
BITCOI
Solv Protocol
Reentrancy Attack
reentrancy
$2.70M
UNRATED
2026-01-15
4mo ago
ARB
Futureswap (reentrancy)
Reentrancy during liquidity provision → excess LP mint → 3-day cooldown wait → burn for redemption
reentrancy
$74.0K
AUDIT-CATCHABLE
2026-01-14
4mo ago
ARB
FutureSwap
Reentrancy Attack
reentrancy
$74.0K
UNRATED
2025-07-15
11mo ago
BASE
Arcadia V2
Rebalancer contract reentrancy hack
reentrancy
$2.50M
UNRATED
2025-07-09
11mo ago
GMX
Contract Vulnerability
reentrancy
$42.00M
UNRATED
ChainBleed — live web3 threat intelligence