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

Der Platypus-Flash-Darlehensangriff im Wert von 8 Millionen Dollar wurde durch diesen Code ermöglicht In die falsche Reihenfolge, laut einem Obduktionsbericht des Platypus-Auditors Omniscia. Die Wirtschaftsprüfungsgesellschaft behauptet, dass der problematische Code in der Version, die sie sahen, nicht existierte.

Dem Bericht zufolge enthielt der Platypus MasterPlatypusV4-Vertrag „ein fatales Missverständnis in seinem EmergencyWithdraw-Mechanismus“, das ihn dazu veranlasste, „seine Solvenzprüfung durchzuführen, 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.“

Omnisia gab zu, dass sie eine Version des MasterPlatypusV4-Vertrags vom 21. November bis 5. Dezember 2021 geprüft haben. Diese Version enthielt jedoch „keine Integrationspunkte mit einem externen PlatypusTreasure-System“ und enthielt daher nicht die falsch angeordneten Codezeilen. Aus Sicht von Omniscia bedeutet dies, dass die Entwickler irgendwann nach dem Audit eine neue Version des Vertrags bereitgestellt haben müssen.

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

Der Wirtschaftsprüfer behauptet, dass die Vertragsdurchführung bei Avalanche (AVAX) C-Chain-Adresse liegt 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 ist derjenige, der ausgenutzt wurde. 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 in [the] USP Solvency Check Mechanism“, aber das Team machte zunächst keine weiteren Angaben. 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 der Angriff stattgefunden hatte. Es hat versucht, den Hacker zu kontaktieren und die Gelder im Austausch gegen eine Bug-Prämie zurückzuerhalten. Der Angreifer verwendete Flash-Darlehen, um den Exploit durchzuführen, der der Strategie ähnelt, die beim Defrost Finance-Exploit vom 25. Dezember verwendet wurde.