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 № 069Reentrancy

Grim Finance 5x-Reentrancy

Grim-Finance-Vaults auf Fantom verloren 30 Mio. $ durch eine 5-Schleifen-Reentrancy in depositFor. TVL fiel von 98,9 Mio. $ auf 4,2 Mio. $.

Datum
Chain(s)
Status
Mittel entwendet

Am 19. Dezember 2021 verlor der Fantom-basierte Yield-Aggregator Grim Finance rund 30 Millionen $ durch einen 5-Schleifen-Reentrancy-Angriff auf die depositFor()-Funktion seines Vaults. Als das Team das Protokoll pausierte, war Grims TVL von 98,9 Mio. $ auf 4,2 Mio. $ kollabiert — ein Rückgang um 96 %.

Was geschah

Grim Finances Vaults nutzten eine depositFor()-Funktion, um einen Nutzer im Tausch gegen seine Einlage mit Vault-Shares gutzuschreiben. Die Funktion folgte dem typischen Muster: Nutzer-Tokens per transferFrom einziehen, dann Vault-Shares an den Nutzer basierend auf der aktuellen Share-Preis-Berechnung minten.

Der fatale Fehler: depositFor() fehlte ordentlicher Reentrancy-Schutz. Wenn das transferFrom des deponierten Tokens einen Callback auslöste (wie bei ERC-777- oder Fee-on-Transfer-Tokens möglich — oder direkter, wenn der Angreifer den deponierten „Token"-Contract komplett kontrollierte), konnte der Callback des Angreifers Grims depositFor() re-entern, während der erste Aufruf noch mid-execution war.

Der Angriff:

  1. Deployte einen bösartigen „Token"-Contract, dessen transferFrom-Funktion in Grims depositFor() zurückrief.
  2. Rief Grims depositFor() mit dem bösartigen Token auf.
  3. Der erste Aufruf las den aktuellen Share-Preis und bereitete den Share-Mint vor.
  4. Bevor der Mint des ersten Aufrufs abgeschlossen war, re-enterte der Callback depositFor() — und las denselben Pre-Mint-Share-Preis und bereitete vor, mehr Shares gegen das zu minten, was dieselbe Einlage hätte sein sollen.
  5. 5-mal geloopt, bevor sich der Call-Stack abrollte.
  6. Verschwand mit 5x der legitimen Vault-Share-Allokation für eine einzige Underlying-Einlage.

Netto-Drain: rund 30 Mio. $ über Grims betroffene Vaults, denominiert in BTC, ETH, FTM, USDC und anderen Assets.

Folgen

  • Grim pausierte alle Vault-Operationen binnen Stunden.
  • Das Team kontaktierte Circle (USDC-Issuer), AnySwap und MakerDAO, um Assets im Zusammenhang mit den Adressen des Angreifers einzufrieren.
  • TVL fiel von 98,9 Mio. $ auf 4,2 Mio. $ — ein 96 %-Rückgang, getrieben sowohl vom realisierten Diebstahl als auch von panikartigen Deponenten-Abhebungen aus nicht betroffenen Vaults.
  • Das Protokoll erlangte seinen Vor-Vorfall-Stand unter den Fantom-Yield-Aggregatoren nie zurück.
  • Die gestohlenen Gelder wurden über Cross-Chain-Bridges und Mixer gewaschen; keine öffentliche Wiederherstellung.

Warum es wichtig ist

Grim Finance gehört zu einer wiederkehrenden Reihe von Vault-Contract-Reentrancy-Vorfällen, die sich um Yield-Aggregatoren clustern, die dieselben Basis-Patterns forken. Die Bug-Klasse — „externer Token-Transfer im Deposit-Pfad ohne Reentrancy-Guard" — wiederholt sich:

  • Pickle Finance (Nov. 2020) — Fake-Jar-Injection per Swap.
  • Cream Finance (Aug. 2021) — ERC-777 tokensReceived-Reentrancy.
  • Grim Finance (Dez. 2021) — depositFor-5-Schleifen-Reentrancy.
  • Visor Finance (Dez. 2021) — delegateTransferERC20-Reentrancy.
  • Fei/Rari (Apr. 2022) — exitMarket ungeschützt.
  • Penpie (Sep. 2024) — Pendle-Plugin-Reentrancy.

Das defensive Muster — OpenZeppelins ReentrancyGuard ohne Ausnahmen auf jeden state-mutierenden Externer-Aufruf-Pfad — ist gut dokumentiert und frei verfügbar. Jedes Protokoll, das irgendeinen Deposit-Pfad ohne Guard shippt, ist einen sorgfältig konstruierten Token-Contract von Grim Finances Ergebnis entfernt. Die 30-Mio.-$-Kosten sind das wiederkehrende Schulgeld dafür, den Guard zu überspringen.

Quellen & On-Chain-Belege

  1. [01]coindesk.comhttps://www.coindesk.com/tech/2021/12/20/fantom-defi-project-grim-finance-exploited-for-30m
  2. [02]cryptobriefing.comhttps://cryptobriefing.com/fantom-defi-project-grim-finance-suffers-30m-hack/
  3. [03]decrypt.cohttps://decrypt.co/88727/grim-finance-hacked-30-million-fantom-tokens

Verwandte Einträge