Am 27. Februar 2021 um 16:47 UTC wurde das DeFi-Transaktions-Batching-Protokoll Furucombo um rund 14 Millionen $ exploitet — abgezogen nicht aus seiner eigenen Treasury, sondern von jedem Nutzer, der Furucombos Proxy-Contract Token-Approvals erteilt hatte. Der Angreifer brachte den Furucombo-Proxy dazu zu glauben, Aave v2 habe eine aktualisierte Implementierung erhalten, und nutzte delegatecall, um angreifer-kontrollierten Code mit den Privilegien jedes Nutzers auszuführen.
Was geschah
Furucombo erlaubte Nutzern, DeFi-Operationen in eine einzige Transaktion zu bündeln — nützlich für Dinge wie „in Aave deponieren, dann auf Uniswap swappen, dann auf Curve Liquidität bereitstellen, alles atomar". Dazu erteilten Nutzer Furucombos Proxy-Contract Token-Approvals, oft mit unbegrenzter Allowance, damit der Proxy ihre Tokens während der gebündelten Operationen bewegen konnte.
Furucombos Proxy unterstützte upgradefähige Ziel-Contracts für die integrierten Protokolle. Wenn ein Protokoll seinen Implementierungs-Contract upgradete, routete Furucombos Proxy über eine neue Implementierungs-Adresse. Der Bug: Der Proxy validierte nicht, dass die neue „Implementierung" tatsächlich vom Protokoll deployt wurde, mit dem er zu integrieren behauptete.
Der Angreifer:
- Deployte einen Evil-Contract — geschrieben, um wie ein Aave-v2-Implementierungs-Upgrade auszusehen.
- Brachte den Furucombo-Proxy dazu, Aave-bezogene Aufrufe durch den Evil-Contract zu routen.
- Nutzte den
delegatecalldes Proxys auf den Evil-Contract, um beliebigen Code im Kontext des Proxys auszuführen — einschließlich Aufrufen vontransferFrom()gegen das approvte Token-Guthaben jedes Nutzers. - Drainte die Guthaben jedes Nutzers mit Infinite Approvals an Furucombo und fegte rund 14 Mio. $ über mehrere Tokens.
Folgen
- Furucombo deauthorisierte die relevanten Proxy-Komponenten und empfahl betroffenen Nutzern, alle Approvals an den Proxy zu widerrufen.
- Das Team veröffentlichte ein Post-Mortem und shippte einen neu designten Proxy mit strikten Implementierungs-Adress-Allowlists.
- Die gestohlenen Gelder wurden über Tornado Cash gewaschen; keine öffentliche Wiederherstellung.
Warum es wichtig ist
Furucombo ist der kanonische Fall für die „Evil Contract via Delegatecall"-Schwachstellen-Klasse. Jeder Contract, der Nutzer-Approvals hält und auf angreifer-beeinflussbare Ziele delegatecall-en kann, ist eine fehlende Validierung davon entfernt, ein Wallet-Drainer für alle seine Nutzer zu sein. Dasselbe Muster tauchte bei LI.FI (2024) und vielen anderen approval-basierten Aggregatoren wieder auf.
Die tiefere Lektion — wiederholt von Furucombo und jedem ähnlichen Vorfall: Infinite Approvals an upgradefähige Contracts kumulieren Vertrauen für immer. Moderne Wallet-UX (Revoke.cash, zeitbegrenzte Permits via EIP-2612, begrenzte Approval-Defaults) existiert als direkte Antwort auf die Furucombo-Klasse des Versagens.
Quellen & On-Chain-Belege
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-furucombo-evil-contract-hack-feb-2021
- [02]rekt.newshttps://rekt.news/furucombo-rekt