Laut Beosin EagleEye fiel das Projekt Radiant Capital am 3. Januar 2024 einem Flash-Loan-Angriff eines Angreifers zum Opfer. Durch drei Transaktionen stahl der Angreifer über 1900 ETH im Wert von über 4,5 Millionen Dollar. Die gestohlenen Gelder werden derzeit in der Adresse des Angreifers aufbewahrt und das Sicherheitsteam von Beosin analysierte den Vorfall umgehend.
Schwachstellenanalyse
Die Hauptursache dieses Vorfalls liegt in der Berechnung der Token-Menge durch das Radiant Capital-Projekt, die Präzisionserweiterung und Rundung beinhaltet. Der Angreifer nutzte die Möglichkeit zur Präzisionssteuerung aus und erhöhte in Kombination mit der Rundung die Gewinnmargen für den Angriff.

Im beobachteten Code verwendet die Funktion rayDiv zwei uint256-Daten, a und b. Der gesamte Prozess kann vereinfacht werden als (a RAY + b/2) / b, wobei RAY Präzisionserweiterungsdaten sind, die 10²⁷ entsprechen. Dies ergibt a RAY / b + 0,5, wodurch eine Rundungsfunktion erreicht wird. Die Hauptfehlerquelle bei dieser Berechnung ist b. Wenn b deutlich kleiner als a ist, wird der Fehler vernachlässigbar. Wenn b jedoch eine ähnliche Größenordnung wie a hat, kann der Fehler erheblich sein.
Wenn beispielsweise a RAY = 10000 und b = 3 ist, ist das berechnete Ergebnis 3333, also 1/10000 weniger als der tatsächliche Wert. Wenn a RAY = 10000 und b = 3000 ist, ist das berechnete Ergebnis 3, also 1/10 weniger als der tatsächliche Wert.
Bei diesem Vorfall manipulierte der Angreifer den Wert von b so, dass er eine ähnliche Größenordnung wie a hatte, wodurch die Berechnung 3/2,0001 = 1 ergab. Der berechnete Wert ist 1/3 kleiner als der tatsächliche Wert.
Angriffsprozess
Als Startkapital für den Angriff lieh sich der Angreifer zunächst 3 Millionen USDC über einen AAVE-Blitzkredit.

2. 2 Millionen USDC wurden dem Radiant-Vertrag zugesagt und der Angreifer erhielt 2 Millionen rUSDCn-Token-Zertifikate.

3. Der Angreifer nutzte einen Blitzkredit über den Radiant-Vertrag, um 2 Millionen USDC zu leihen. In der Rückruffunktion wurden 2 Millionen USDC zurückgezahlt und gleichzeitig die verpfändeten USDC aus dem zweiten Schritt extrahiert. Die Blitzkreditfunktion rief die Transferfrom-Funktion auf und übertrug die USDC des Angreifers in den Vertrag, wobei eine Gebühr von 9/10000 als Liquidität für den Pool erhoben wurde.

4. Durch Wiederholen von Schritt 3 kontrollierte der Angreifer den liquidityIndex weitgehend und erreichte liquidityIndex=271800000000999999999999998631966035920.

5. Anschließend erstellte der Angreifer einen neuen Vertrag und zahlte 543.600 USDC darin ein. Dieser Betrag entspricht dem doppelten liquidityIndex-Wert aus Schritt 4, was die Rundungskontrolle erleichtert.

6. Der Angreifer hat alle 543.600 USDC in den Radiant-Vertrag eingebracht und einen entsprechenden Betrag an rUSDCn erhalten.

7. Der Angreifer hob 407.700 USDC ab. Obwohl 407.700 rUSDCn verbrannt werden sollten, wie oben erwähnt, beinhaltete die Brennfunktion Präzisionserweiterungen und Rundungsberechnungen. 407700000000000000000000000000000000000000/271800000000099999999999998631966035920 = 1,49999999, aber die Rundung ergibt 1, wodurch das Ergebnis 1/3 kleiner als der tatsächliche Wert ist. Wie unten gezeigt, wurden statt 407.700 nur 271.800 verbrannt, wodurch der Angreifer 407.700 USDC abheben konnte.

8. Der Angreifer nutzte die Schwachstelle aus Schritt 7 aus und wiederholte die Verpfändungs- und Abhebungsvorgänge. Dabei hob er durchgehend 1/3 mehr als den verpfändeten Betrag ab und tauschte schließlich alle USDC aus dem Pool aus.

Fondsverfolgung
Zum Zeitpunkt des Schreibens befinden sich die gestohlenen 1902 ETH noch immer in der Adresse des Hackers, ohne dass Bewegung stattfindet. Beosin Trace wird die Gelder weiterhin überwachen.

Zu Beginn des Jahres 2024 haben wir zwei Fälle von Diebstahl mit hohem Wert erlebt. (Rückblick auf den Sicherheitsvorfall von gestern: Was geschah im ersten Fall des Jahres, dem Diebstahl von Orbit Chain im Wert von 80 Millionen US-Dollar?) Diese Reihe von Ereignissen dient als Erinnerung daran, dass Sicherheitsvorkehrungen im Web3-Ökosystem weiterhin von entscheidender Bedeutung sind!
Kontakt
Wenn Sie Blockchain-Sicherheitsdienste benötigen, können Sie uns gerne kontaktieren:
Offizielle Website Beosin EagleEye Twitter Telegram Linkedin