Revest Finance FNFT-Reentrancy
2 Mio. $ aus Revest Finance durch eine Reentrancy in depositAdditionalToFNFT abgezogen — Angreifer mintete überbewertete NFTs und löste sie ein.
- Datum
- Opfer
- Revest Finance
- Chain(s)
- Status
- Mittel entwendet
Am 27. März 2022 verlor Revest Finance — ein Protokoll für "Financial NFTs" (FNFTs), die zeitgesperrte oder strukturierte Token-Positionen tokenisieren — etwa 2 Millionen $ durch einen Reentrancy-Angriff auf seinen FNFT-Mint-Pfad. Der Angreifer mintete FNFTs, die mehr Wert repräsentierten als eingezahlt, und löste sie dann gegen die Reserven des Protokolls ein.
Was geschah
Revests FNFTs repräsentieren Ansprüche auf hinterlegte Tokens (Vesting-Positionen, gesperrte Tokens, strukturierte Produkte). Der Mint-/Einzahlungs-Flow verfolgte den zugrundeliegenden Saldo jedes FNFT.
Der fatale Fehler war eine Reentrancy im depositAdditionalToFNFT/Mint-Pfad: Die Funktion übertrug Tokens und aktualisierte die FNFT-Buchhaltung in einer Reihenfolge, die es dem Callback des Token-Transfers erlaubte, wieder in die Mint-Logik einzutreten, bevor die Buchhaltung abgeschlossen war.
Der Angriff:
- Verwendete einen Token (oder Pfad), der während des Einzahlungs-Transfers einen Callback auslöste.
- Trat erneut in die FNFT-Mint-/Einzahlungs-Funktion ein mitten in der Operation, bevor die Buchhaltung der ersten Einzahlung finalisiert war.
- Die wiedereintretenden Aufrufe schrieben dem FNFT des Angreifers mehr zugrundeliegenden Wert gut, als tatsächlich eingezahlt wurde — die klassische Reentrancy "Saldo aktualisiert nach externem Aufruf".
- Löste die überbewerteten FNFTs gegen die echten Token-Reserven des Protokolls ein.
- Ging mit ~2 Mio. $, über Tornado Cash gewaschen.
Folgen
- Revest Finance pausierte das Protokoll und veröffentlichte ein Post-Mortem.
- Ein Kompensationsplan wurde vorgeschlagen; Wiederherstellung vom Angreifer war minimal.
- Das Ansehen des Protokolls wurde erheblich beschädigt; FNFTs als Kategorie gewannen danach keine Mainstream-Traktion.
Warum es wichtig ist
Revest Finance ist ein weiterer Eintrag in der Einzahlungspfad-Reentrancy-Linie, die durch den gesamten Katalog verläuft — The DAO (2016), Cream AMP (2021), Grim Finance (2021), Voltage Finance (2022), Penpie (2024). Die wiederkehrende Form: Eine Funktion überträgt Tokens und aktualisiert interne Buchhaltung, der Transfer kann einen Callback auslösen, und der Callback tritt wieder ein, bevor die Buchhaltung abgeschlossen ist — was die Invariante verletzt, von der die Solvenz des Protokolls abhängt.
Die strukturelle Lektion ist die älteste in der Smart-Contract-Sicherheit und die meist wiederholte: Checks-Effects-Interactions plus ein Reentrancy-Guard auf jedem zustandsändernden Pfad, der externe Aufrufe macht, ohne Ausnahmen. Revests Verlust war vergleichsweise klein (2 Mio. $), aber es ist eine saubere Instanz eines Protokolls, das ein neuartiges Primitiv (Financial NFTs) einführt und dabei die Bedingungen für den fundamentalsten Solidity-Bug wiederherstellt. Jede neue Abstraktionsschicht ist eine frische Gelegenheit, Reentrancy wieder einzuführen — die Angriffsfläche schrumpft nicht, wenn das Ökosystem reift, sie bewegt sich nur dorthin, wo der neueste Code ist.
Quellen & On-Chain-Belege
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-revest-finance-hack-march-2022
- [02]therecord.mediahttps://therecord.media/2-million-stolen-from-defi-protocol-revest-finance-platform-unable-to-reimburse-victims
- [03]rekt.newshttps://rekt.news/revest-finance-rekt