Der Platypus-Angriff nutzte eine falsche Reihenfolge des Codes aus, behauptet der Prüfer

Haftungsausschluss: Der Artikel wurde aktualisiert, um widerzuspiegeln, dass Omniscia keine Version des MasterPlatypusV4-Vertrags geprüft hat. Stattdessen hat das Unternehmen vom 1. November bis 21. Dezember 5 eine Version des MasterPlatypusV2021-Vertrags geprüft.

Der Platypus-Flash-Darlehensangriff im Wert von 8 Millionen US-Dollar wurde durch einen Code in der falschen Reihenfolge ermöglicht. gemäß zu einem Obduktionsbericht des Platypus-Auditors Omniscia. Die Wirtschaftsprüfungsgesellschaft behauptet, dass der problematische Code in der von ihr geprüften Version nicht existierte.

Dem Bericht zufolge enthielt der Platypus MasterPlatypusV4-Vertrag „ein fatales Missverständnis in seinem EmergencyWithdraw-Mechanismus“, was dazu führte, dass er „seine Solvenzprüfung durchführte, bevor er die mit der Stake-Position verbundenen LP-Token aktualisierte“.

Der Bericht betonte, dass der Code für die EmergencyWithdraw-Funktion alle notwendigen Elemente hatte, um einen Angriff zu verhindern, aber diese Elemente wurden einfach in der falschen Reihenfolge geschrieben, wie Omniscia erklärte:

„Das Problem hätte verhindert werden können, indem die MasterPlatypusV4::emergencyWithdraw-Anweisungen neu angeordnet und die Zahlungsfähigkeitsprüfung durchgeführt wurde, nachdem die Betragseingabe des Benutzers auf 0 gesetzt wurde, was den Angriff verhindert hätte.“

Omniscia hat eine Version des MasterPlatypusV1-Vertrags vom 21. November bis 5. Dezember 2021 geprüft. Diese Version enthielt jedoch „keine Integrationspunkte mit einem externen platypusTreasure-System“ und enthielt daher nicht die falsch angeordneten Codezeilen.

Es ist wichtig zu beachten, dass der ausgenutzte Code zum Zeitpunkt der Prüfung durch Omniscia nicht existierte. Die Sicht von Omniscia impliziert, dass die Entwickler irgendwann nach dem Audit eine neue Version des Vertrags bereitgestellt haben müssen.

Related: Raydium gibt Einzelheiten des Hacks bekannt und schlägt eine Entschädigung für die Opfer vor

Der Prüfer behauptet, dass die Vertragsimplementierung bei der Avalanche C-Chain-Adresse 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 diejenige war, die es war Exploited. Die Zeilen 582–584 dieses Vertrags scheinen eine Funktion namens „isSolvent“ auf dem PlatypusTreasure-Vertrag aufzurufen, und die Zeilen 599–601 scheinen den Betrag, den Faktor und die Belohnungsschuld des Benutzers auf Null zu setzen. Allerdings werden diese Beträge auf Null gesetzt, nachdem die Funktion „isSolvent“ bereits aufgerufen wurde.

Das Platypus-Team bestätigt am 16. Februar, dass der Angreifer einen „Fehler im USP-Solvenzprüfungsmechanismus“ ausgenutzt habe, aber das Team habe zunächst keine weiteren Details angegeben. Dieser neue Bericht des Prüfers wirft weiteres Licht darauf, wie der Angreifer möglicherweise in der Lage war, den Exploit durchzuführen.

Das Platypus-Team gab am 16. Februar bekannt, dass die Angriff stattgefunden hatte. Es hat versucht, den Hacker zu kontaktieren und die Gelder im Austausch gegen eine Bug-Prämie zurückzuerhalten. Der Angreifer gebrauchte Flash-Darlehen um den Exploit auszuführen, der der Strategie ähnelt, die in verwendet wird Defrost Finance-Exploit am 25. Dezember 2022.