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

Fei / Rari Fuse-Reentrancy

Reentrancy auf exitMarket() zog 80 Mio. $ aus Rari Capitals Fuse-Lending-Pools — eine Funktion, die das Team beim Patch des Vormonats zu schützen vergaß.

Datum
Chain(s)
Status
Mittel entwendet

Am 30. April 2022 verlor das fusionierte Ökosystem aus Fei Protocol + Rari Capital rund 80 Millionen $, als ein Angreifer einen Reentrancy-Bug in Raris isolierten Lending-Pools Fuse exploitete. Der Bug war eine bekannte Schwachstellen-Klasse, die Rari einen Monat zuvor explizit gepatcht hatte — bis auf eine Funktion, die vergessen worden war.

Was geschah

Raris Fuse war ein Compound-v2-Fork, der Nutzern erlaubte, isolierte Lending-Pools aufzusetzen. Am 1. April 2022 shippte Rari ein sogenanntes „Security Upgrade", das von Compound geerbte Reentrancy-Schwachstellen adressierte. Der Patch fügte den meisten state-mutierenden Funktionen der Pool-Contracts einen globalen Reentrancy-Lock hinzu.

Der Lock schützte die offensichtlichen Funktionen: borrow, mint, redeem, liquidateBorrow etc. Die eine Funktion, die er nicht schützte, war exitMarket() — der Aufruf, der ein Collateral-Asset aus der Borrowing-Eignung eines Nutzers entfernt.

Der Angriff:

  1. Der Angreifer betrat einen Fuse-Markt mit einer Einlage.
  2. Lieh ETH aus demselben Markt.
  3. Als der Borrow ETH an den Contract des Angreifers auszahlte, wurde die Fallback-Funktion des Contracts ausgelöst.
  4. Das Fallback rief exitMarket() auf dem Lending-Contract auf — was nicht durch den Reentrancy-Lock geschützt war.
  5. Das ungeschützte exitMarket() berechnete die Collateralisierung des Angreifers neu, bevor das geliehene ETH als ausstehende Schuld erfasst worden war, und erlaubte dem Angreifer, Collateral zu entnehmen, das gegen den Kredit hätte gesperrt sein müssen.
  6. Der Angreifer ging mit beidem — geliehenem ETH und freigegebenem Collateral.

Die Wiederholung des Musters über mehrere Fuse-Pools brachte rund 80 Millionen $ ein.

Folgen

  • Fei Protocol pausierte alle Borrowings über die Fuse-Pools.
  • Die Fei DAO bot dem Angreifer öffentlich eine 10-Mio.-$-Bounty für die Rückgabe der Gelder an — unbeantwortet.
  • Die kombinierte Treasury reichte nicht aus, alle betroffenen Pools voll zu erstatten. Das Nachspiel löste einen spaltenden Governance-Streit aus, und die Fei-+-Rari-Fusion löste sich über die folgenden Monate faktisch auf.
  • Die Gelder des Angreifers wurden über Tornado Cash gewaschen.

Warum es wichtig ist

Fei/Rari ist der Lehrbuchfall dafür, warum partieller Reentrancy-Schutz schlimmer ist als keiner: Er gibt ein falsches Sicherheitsgefühl, das die ungeschützten Pfade maskiert. Compound-v2-Forks bleiben eine fruchtbare Schwachstellen-Kategorie — jeder Fork, der irgendeine ungeschützte state-mutierende Funktion shippt, wird auf diesem Pfad irgendwann exploitet. Die wiederkehrende Lektion, verstärkt bei Hundred Finance und Sonne Finance: Die Compound-v2-Basisschicht hat bekannte Footguns, die umfassend gepatcht werden müssen, nicht selektiv.

Quellen & On-Chain-Belege

  1. [01]coindesk.comhttps://www.coindesk.com/business/2022/04/30/defi-lender-rari-capitalfei-loses-80m-in-hack
  2. [02]certik.comhttps://www.certik.com/resources/blog/6LiXVtPQ8q5AQfqOUPnTOS-revisiting-fei-protocol-incident
  3. [03]decrypt.cohttps://decrypt.co/99103/fei-protocol-offers-10m-bounty-after-80m-rari-capital-exploit

Verwandte Einträge