Napad Platypus-a je iskoristio netačan redoslijed koda, tvrdi revizor

Odricanje od odgovornosti: Članak je ažuriran kako bi odražavao da Omniscia nije izvršila reviziju verzije MasterPlatypusV4 ugovora. Umjesto toga, kompanija je izvršila reviziju verzije MasterPlatypusV1 ugovora od 21. novembra do 5. decembra 2021. godine.

Napad na Platypus flash pozajmicu od 8 miliona dolara bio je moguć zbog koda koji je bio u pogrešnom redoslijedu, prema na obdukcijski izvještaj od Platypus auditor Omniscia. Revizorska kuća tvrdi da problematični kod nije postojao u verziji koju su revidirali.

Prema izvještaju, ugovor Platypus MasterPlatypusV4 "sadržao je fatalnu zabludu u svom mehanizmu hitnog povlačenja", zbog čega je izvršio "provjeru solventnosti prije ažuriranja LP tokena povezanih s pozicijom uloga".

U izvještaju se naglašava da kod za funkciju emergencyWithdraw ima sve potrebne elemente da spriječi napad, ali su ti elementi jednostavno napisani pogrešnim redoslijedom, kako je Omniscia objasnila:

“Problem je mogao biti spriječen ponovnim redoslijedom izjava MasterPlatypusV4::emergencyWithdraw i izvođenjem provjere solventnosti nakon što je unos iznosa korisnika postavljen na 0, što bi zabranilo napad.”

Omniscia je izvršila reviziju verzije MasterPlatypusV1 ugovora od 21. novembra do 5. decembra 2021. Međutim, ova verzija „nije sadržavala integracijske tačke sa eksternim PlatypusTreasure sistemom“ i stoga nije sadržavala pogrešno raspoređene linije koda.

Važno je napomenuti da kod koji je korišten nije postojao u vrijeme revizije Omniscie. Omniscia-ino gledište implicira da su programeri u nekom trenutku nakon izvršene revizije morali primijeniti novu verziju ugovora.

Povezano: Raydium objavljuje detalje hakovanja, predlaže odštetu za žrtve

Revizor tvrdi da je implementacija ugovora na adresi Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 ona koja je iskorišten. Čini se da redovi 582–584 ovog ugovora pozivaju funkciju pod nazivom “isSolvent” na ugovoru PlatypusTreasure, a čini se da redovi 599–601 postavljaju korisnikov iznos, faktor i nagradni dug na nulu. Međutim, ovi iznosi se postavljaju na nulu nakon što je funkcija “isSolvent” već pozvana.

Tim Platypus potvrđeno 16. februara da je napadač iskoristio „nedostatak u [mehanizmu] USP provjere solventnosti“, ali tim u početku nije dao više detalja. Ovaj novi izvještaj revizora baca dodatno svjetlo na to kako je napadač mogao ostvariti eksploataciju.

Tim Platypus je 16. februara objavio da je došlo do napada. Pokušao je kontaktirati hakera i dobiti vraćena sredstva u zamjenu za nagradu za greške. Napadač korišćeni flash krediti za izvođenje eksploatacije, što je slično strategiji korištenoj u Defrost Finance exploit 25. decembra 2022.