Akropolis Hack

TOTAL LOST $2.0M
Medium Flash Loan Attacks ethereum

What happened

On November 12, 2020, an attacker used a malicious ERC-20 callback to re-enter Akropolis's SavingsModule deposit flow. Missing token validation and reentrancy protection caused one real DAI deposit to be credited twice, letting the attacker mint and redeem unbacked pool shares from the YCurve and sUSD pools. Losses totalled about 2.03 million DAI.

Case & protocol details

Classification Ecosystem / Yield Aggregator / Reentrancy
Protocol Type Yield
Affected asset / contract AKRO
Smart Contract Language Solidity
Official Website www.akropolis.io/
Protocol Twitter/X @akropolisio

Attack Timeline

Akropolis allowed an attacker-controlled token to be supplied to its deposit function. When SavingsModule called transferFrom on that token, its callback re-entered deposit with real DAI. Shares were calculated from the balance change before and after each deposit, so the same DAI transfer was counted in both the re-entrant and original calls.

The attacker repeatedly minted unbacked pool tokens, redeemed them from the affected pools, and used dYdX flash loans to make the sequence atomic. The flash loan funded the execution; the root causes were unsupported-token validation and missing reentrancy protection.

Security review history

Practice this exploit pattern safely

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