Napad Platypusa iskoristio je netočan redoslijed koda, tvrdi revizor

Odricanje od odgovornosti: članak je ažuriran kako bi odražavao da Omniscia nije revidirala verziju ugovora MasterPlatypusV4. Umjesto toga, tvrtka je revidirala verziju ugovora MasterPlatypusV1 od 21. studenog do 5. prosinca 2021.

Napad Platypus flash kredita od 8 milijuna dolara bio je moguć zbog koda koji je bio u pogrešnom redoslijedu, prema na post-mortem izvješće revizora Platypusa Omniscije. Revizorska tvrtka tvrdi da problematični kod nije postojao u verziji koju su revidirali.

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

U izvješću je naglašeno da kod za funkciju EmergencyWithdraw ima sve potrebne elemente za sprječavanje napada, ali ti su elementi jednostavno napisani pogrešnim redoslijedom, kako je Omniscia objasnila:

"Problem se mogao spriječiti ponovnim redoslijedom izjava MasterPlatypusV4::emergencyWithdraw i provođenjem provjere solventnosti nakon što je korisnikov unos iznosa postavljen na 0, što bi spriječilo izvođenje napada."

Omniscia je izvršila reviziju verzije ugovora MasterPlatypusV1 od 21. studenog do 5. prosinca 2021. Međutim, ova verzija "nije sadržavala točke integracije s vanjskim sustavom platypusTreasure" i stoga nije sadržavala pogrešno raspoređene retke koda.

Važno je napomenuti da kod koji je iskorišten nije postojao u vrijeme Omniscia revizije. Gledište tvrtke Omniscia implicira da su programeri morali implementirati novu verziju ugovora u nekom trenutku nakon revizije.

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

Revizor tvrdi da je provedba ugovora na adresi Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 ona koja je eksploatiran. Čini se da linije 582-584 ovog ugovora pozivaju funkciju pod nazivom "isSolvent" na ugovoru PlatypusTreasure, a čini se da linije 599-601 postavljaju korisnikov iznos, faktor i rewardDebt na nulu. Međutim, ti se iznosi postavljaju na nulu nakon što je funkcija "isSolvent" već pozvana.

Platypus tim potvrđen 16. veljače da je napadač iskoristio "grešku [u] USP mehanizmu provjere solventnosti", ali tim u početku nije dao daljnje detalje. Ovo novo izvješće revizora baca daljnje svjetlo na to kako je napadač mogao izvršiti iskorištavanje.

Tim Platypusa objavio je 16. veljače da je dogodio se napad. Pokušao je kontaktirati hakera i dobiti povrat sredstava u zamjenu za nagradu za bug. Napadač koristio bljeskale kredite za izvođenje iskorištavanja, što je slično strategiji korištenoj u Defrost Finance exploit 25. prosinca 2022.