Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 053Reentrancy

Cream Finance AMP Reentrancy

18,8 Mio. USD aus Cream-v1-Lending via Reentrancy-Bug im ERC-777-Transfer-Hook des AMP-Tokens entzogen – zweiter von Creams drei 2021er Exploits.

Datum
Chain(s)
Status
Teilweise zurückerlangt

Am 30. August 2021 erlitt das Lending-Protokoll Cream Finance den zweiten seiner drei großen Exploits 2021 und verlor etwa 18,8 Millionen US-Dollar2.804,96 ETH und 462.079.976 AMP-Tokens — durch einen Reentrancy-Angriff, der durch den ERC-777-Token-Standard, den AMP nutzte, ermöglicht wurde. Der Angreifer gab etwa 17,6 Mio. USD der gestohlenen Mittel zurück und klassifizierte das Ereignis als opportunistischen White-Hat.

Was geschah

Als Cream AMP als unterstützten Sicherheits-Asset listete, erbte die Integration eine subtile Eigenschaft von AMPs ERC-777-Implementierung: Jeder Transfer von AMP löst einen tokensReceived()-Hook im empfangenden Vertrag aus, der dem Empfänger erlaubt, beliebigen Code auszuführen, bevor die Buchhaltung des Transfers finalisiert ist.

Creams borrow()-Funktion folgte dem Standard-Compound-v2-Muster: Sende die geliehenen Tokens an den Aufrufer, dann aktualisiere den Debt-Saldo des Aufrufers. Der beabsichtigte Fluss war sicher — bis AMPs Hook dem Borrower erlaubte, beliebigen Code in der Lücke zwischen „Tokens gesendet" und „Schuld erfasst" auszuführen.

Der Angriff:

  1. Der Angreifer borgte einen kleinen Anfangsbetrag AMP von Cream — was den AMP-tokensReceived()-Hook im Vertrag des Angreifers auslöste.
  2. Von innerhalb des Hooks — bevor der erste Borrow in Creams Buchhaltung erfasst worden war — rief der Angreifer borrow() erneut auf.
  3. Der zweite Borrow sah die Sicherheit des Angreifers als noch unbelastet (keine Schuld erfasst noch) und gab einen zweiten Borrow gegen dieselbe Sicherheit aus.
  4. Wiederholte die Rekursion, bis der Angreifer das AMP- und ETH-Supply des Protokolls entzogen hatte.

Folgen

  • Cream pausierte betroffene Märkte und arbeitete sofort mit Yearn-Finance-Ingenieuren, um die AMP-Hook-Ursache zu identifizieren.
  • Der Angreifer — möglicherweise nervös wegen Identifizierung — gab ~17,6 Mio. USD der 18,8 Mio. USD innerhalb von Tagen zurück und behielt eine etwa 6%-„Bounty".
  • Zwei Monate später, im Oktober 2021, erlitt Cream einen viel größeren dritten Exploit über 130 Mio. USD — ein separater Schwachstellen-Pfad, aber im selben Protokoll, das nun in acht Monaten dreimal kompromittiert worden war.

Warum es wichtig ist

Creams Vorfall vom August 2021 ist einer der kanonischen Fälle dafür, warum ERC-777-Token-Hooks ein Reentrancy-Risiko für jedes Protokoll sind, das geliehene Token-Salden handhabt. Die defensive Antwort ist zweifach:

  • Behandle jeden externen Token-Aufruf als potenziellen Re-Entry-Punkt — wende das Checks-Effects-Interactions-Muster rigoros, nicht selektiv an.
  • Audite jede Token-Integration, als wäre sie ein frischer Codebase — token-spezifisches Verhalten (ERC-777-Hooks, Rebasing-Tokens, Fee-on-Transfer-Tokens, Callback-fähige Tokens) kann Sicherheitsannahmen brechen, die für reine ERC-20s gelten.

Creams drei Exploits 2021 zusammen sind auch eine Fallstudie dafür, was passiert, wenn die Sicherheitskultur eines Protokolls nicht mit seiner Listing-Geschwindigkeit Schritt halten kann. Neue Sicherheits-Assets schnell hinzuzufügen ist Wettbewerbsdruck; es ohne Per-Asset-Reentrancy-Analyse zu tun wird in realen Verlusten bezahlt.

Quellen & On-Chain-Belege

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-cream-finance-hack-august-2021
  2. [02]coindesk.comhttps://www.coindesk.com/business/2021/08/30/defi-protocol-cream-finance-hacked
  3. [03]cryptonews.nethttps://cryptonews.net/news/defi/1616179/

Verwandte Einträge