Euler Finance Exploit
Ein fehlender Health-Check in Eulers donateToReserves-Funktion ließ einen Angreifer eine selbstliquidierbare Position aufbauen und 197 Mio. $ erbeuten.
- Datum
- Opfer
- Euler Finance
- Chain(s)
- Status
- Zurückerlangt
Am 13. März 2023 wurde das Lending-Protokoll Euler Finance um rund 197 Mio. $ exploitet. Fast alles davon wurde vom Angreifer im Folgemonat zurückgegeben, was es zum damals größten wiederhergestellten Exploit auf Ethereum machte.
Was geschah
Euler stellte eine donateToReserves-Funktion bereit, die jedem eToken-Halter erlaubte, sie an die Protokoll-Reserven zu spenden. Die Funktion dekrementierte das Guthaben des Spenders, führte aber keinen Health-Check auf die resultierende Position durch.
Indem ein Angreifer einen Flash Loan aufnahm, als Collateral hinterlegte, dagegen lieh und dann einen Anteil seines eToken-Bestands spendete, konnte er sein Konto absichtlich unter Wasser drücken. Er liquidierte sich dann in derselben Transaktion selbst und nutzte Eulers rabattierte Liquidations-Belohnung, um mehr Wert zu extrahieren, als er eingebracht hatte. Wiederholung in einer Schleife drainte die Lending-Pools.
Folgen
- Das Euler-Team pausierte die Contracts binnen Stunden und begann On-Chain-Verhandlungen mit dem Angreifer.
- Der Angreifer gab alle Gelder zurück — rund 197 Mio. $ — über die folgenden Wochen, unter Hinweis auf offenbares Bedauern. Der Fall bleibt ungewöhnlich unter großen DeFi-Exploits.
- Euler veröffentlichte ein detailliertes Post-Mortem und hat seither mit neu auditierten Contracts redeployt.
Warum es wichtig ist
Der Bug lag nicht in Flash Loans, Orakeln oder Liquidationslogik — diese funktionierten alle korrekt. Der Fehler war eine einzige fehlende Invariante: Jede Funktion, die das Guthaben eines Nutzers ändert, muss denselben Health-Check-Helper aufrufen. Mehrere Lending-Protokolle auditierten ihre Codebasen in den folgenden Wochen auf analoge Auslassungen.
Quellen & On-Chain-Belege
- [01]medium.comhttps://medium.com/euler-xyz/the-march-13-2023-euler-attack-d5cd462f5ee2
- [02]twitter.comhttps://twitter.com/eulerfinance/status/1635413933076774914
- 0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d