Poly Network incident, 2021-08-10
What happened to Poly Network?
On 10 August 2021 an attacker abused a privileged cross-chain call in Poly Network to replace its keeper keys and withdraw about $611M on Ethereum, BNB Chain and Polygon — the largest DeFi theft at the time. Almost all of it was returned; the rest was frozen and later restored.
Key facts
- Date (UTC)
- Protocol
- Poly Network cross-chain protocol (Ethereum, BNB Chain, Polygon)
- Reported loss
- ≈ $610–613M across Ethereum, BNB Chain and Polygon ChainalysisKudelski SecurityDefiLlama
- Root cause
- Verification flaw — the cross-chain manager contract could be made to call the data contract that stores keeper keys, letting the attacker replace the keepers with their own key Kudelski SecurityChainalysis
- Chains
- Ethereum, BNB Chain, Polygon
- Recovery
- Funds returned
- Official post-mortem
- Honour, Exploit, and Code: How We Lost $610M Dollar and Got It Back
Timeline
All dates and times in UTC.
- 2021-08-10 — Attacker replaces keeper public keys and drains assets on three chains. Kudelski Security
- 2021-08-11 — Attacker begins returning funds to three Poly Network addresses. Chainalysis
- 2021-08-12 — $578.6M of $612M returned; 33.4M USDT remains frozen by Tether. Chainalysis
- 2021-08 — Remaining funds move to a multisig shared with Poly Network; Poly says all assets restored by late August. Poly Network
Where did the funds go, and was anything recovered?
Starting 11 August the attacker sent funds back; by 12 August, $578.6M of the $612M had been returned, with the remaining 33.4M USDT frozen by Tether. The attacker also asked Poly Network to set up a multisig for the rest (Chainalysis). Poly Network says all assets were restored by late August 2021 (Poly Network).
Which routes and bridges were affected?
Poly Network's lock-and-release contracts on Ethereum, BNB Chain and Polygon were drained. Poly Network is not among the bridges upswap samples.
Why did it happen?
Poly Network's EthCrossChainManager contract executed cross-chain messages by calling a target contract and function named in the message. It also had the authority to update EthCrossChainData, the contract that stores the public keys of the "keepers" who sign cross-chain transfers. Nothing prevented a message from targeting EthCrossChainData itself. By choosing a function name whose 4-byte selector collided with the keeper-update function, the attacker made the manager overwrite the keepers with a key the attacker controlled, and then signed withdrawals at will (Kudelski Security; Chainalysis).
The root problem was that a contract executing user-supplied calls also held administrative power over the bridge's own trust anchor. Separating "execute arbitrary message" from "manage validators" — or simply blacklisting privileged targets — closes this class.
The return of funds was unusual: the attacker could not easily launder assets that were highly visible on-chain, and stablecoin issuers could freeze part of them. It should not be read as a model for recovery; most later bridge thefts were not returned.
Poly also illustrates why bridge size matters. A single contract set on three chains held over $600M, so one logic error exposed all of it at once; per-route caps or withdrawal rate limits would have bounded the loss regardless of the bug. Large single-contract pools are convenient for liquidity but turn every logic error into a maximum-size event.
What should users have done then, and what should they do now?
At the time
Users holding Poly-bridged assets could do nothing to stop the drain; the useful step afterwards was not to trade wrapped assets at panic discounts while the return negotiations were public, and to avoid interacting with the bridge until it had been patched and restarted.
Now
Check whether a bridge's message executor can call its own admin or validator-management contracts; audits and L2Beat risk pages often flag this. Prefer bridges where validator changes require a delay and separate governance. Poly Network is not covered in our quote sampling.
Sources
5 independent publishers. Links checked on the date shown.
- Honour, Exploit, and Code: How We Lost $610M Dollar and Got It Back — Poly Network · Official · checked
- The Poly Network Hack Explained — Chainalysis · Analytics · checked
- The Poly Network Hack Explained — Kudelski Security · Security firm · checked
- How hackers stole $613 million in crypto tokens from Poly Network — Reuters · Media · checked
- DefiLlama Hacks — Poly Network, 2021-08-10 — DefiLlama · Database · checked
How do I cite this page?
Burn, A. / upswap.io (2026). Poly Network incident (2021-08-10). Updated 2026-10-24. https://upswap.io/incidents/poly-network-2021#summary. CC BY 4.0. Accessed ____.
Stable anchors: #summary #facts #timeline #funds #affected #analysis #then #now #sources #cite
