Ptakopyskový útok využil nesprávného řazení kódu, tvrdí auditor

Prohlášení: Článek byl aktualizován, aby odrážel, že společnost Omniscia neauditovala verzi smlouvy MasterPlatypusV4. Místo toho společnost provedla audit verze smlouvy MasterPlatypusV1 od 21. listopadu do 5. prosince 2021.

Útok na flashovou půjčku Platypus ve výši 8 milionů dolarů byl možný díky kódu, který byl ve špatném pořadí, podle na posmrtnou zprávu auditora Platypus Omniscia. Auditorská společnost tvrdí, že problematický kód ve verzi, kterou auditovala, neexistoval.

Podle zprávy smlouva Platypus MasterPlatypusV4 „obsahovala fatální mylnou představu v mechanismu nouzového stažení“, což ji přimělo provést „kontrolu solventnosti před aktualizací LP tokenů spojených s pozicí sázky“.

Zpráva zdůraznila, že kód pro funkci nouzového stažení má všechny nezbytné prvky k zabránění útoku, ale tyto prvky byly jednoduše napsány ve špatném pořadí, jak vysvětlila Omniscia:

„Problému se dalo předejít přeuspořádáním výpisů MasterPlatypusV4::emergencyWithdraw a provedením kontroly solventnosti poté, co byla uživatelova zadaná částka nastavena na 0, což by zabránilo uskutečnění útoku.“

Společnost Omniscia provedla audit verze smlouvy MasterPlatypusV1 od 21. listopadu do 5. prosince 2021. Tato verze však „neobsahovala žádné integrační body s externím systémem platypusTreasure“, a proto neobsahovala nesprávně uspořádané řádky kódu.

Je důležité poznamenat, že kód, který byl zneužit, v době auditu společnosti Omniscia neexistoval. Z pohledu Omniscie vyplývá, že vývojáři museli v určitém okamžiku po provedení auditu nasadit novou verzi smlouvy.

Související: Raydium oznamuje podrobnosti o hacku, navrhuje odškodnění pro oběti

Auditor tvrdí, že implementace smlouvy na adrese Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 je ta, která byla Exploited. Zdá se, že řádky 582–584 této smlouvy volají funkci nazvanou „isSolvent“ ve smlouvě PlatypusTreasure a řádky 599–601 nastavují částku, faktor a odměnu Dluh uživatele na nulu. Tyto částky jsou však nastaveny na nulu poté, co již byla zavolána funkce „isSolvent“.

Tým Platypus potvrzeno 16. února, že útočník zneužil „chybu v mechanismu kontroly solventnosti USP“, ale tým původně neuvedl další podrobnosti. Tato nová zpráva od auditora vrhá další světlo na to, jak mohl útočník provést zneužití.

Tým Platypus 16. února oznámil, že došlo k útoku. Pokusil se kontaktovat hackera a získat peníze zpět výměnou za odměnu za chyby. Útočník použité bleskové půjčky provést exploit, který je podobný strategii použité v Defrost Finance exploit dne 25. prosince 2022.