Sinamantala ng pag-atake ng Platypus ang maling pagkakasunud-sunod ng code, ang sabi ng auditor

Disclaimer: Ang artikulo ay na-update upang ipakita na ang Omniscia ay hindi nag-audit ng isang bersyon ng kontrata ng MasterPlatypusV4. Sa halip, nag-audit ang kumpanya ng bersyon ng kontrata ng MasterPlatypusV1 mula Nob. 21 hanggang Dis. 5, 2021.

Ang $8 milyong Platypus flash loan attack ay naging posible dahil sa code na nasa maling pagkakasunud-sunod, ayon sa sa isang post-mortem na ulat mula sa Platypus auditor na si Omniscia. Sinasabi ng kumpanya sa pag-audit na ang may problemang code ay hindi umiiral sa bersyon na kanilang na-audit.

Ayon sa ulat, ang kontrata ng Platypus MasterPlatypusV4 ay "naglalaman ng isang nakamamatay na maling kuru-kuro sa mekanismo ng emergencyWithdraw nito," na ginawa nitong "pagsusuri ng solvency bago i-update ang mga token ng LP na nauugnay sa posisyon ng stake."

Binigyang-diin ng ulat na ang code para sa emergencyWithdraw function ay mayroong lahat ng kinakailangang elemento upang maiwasan ang isang pag-atake, ngunit ang mga elementong ito ay isinulat lamang sa maling pagkakasunud-sunod, gaya ng ipinaliwanag ng Omniscia:

“Maaaring napigilan ang isyu sa pamamagitan ng muling pag-order sa mga pahayag ng MasterPlatypusV4::emergencyWithdraw at pagsasagawa ng solvency check pagkatapos maitakda sa 0 ang halaga ng entry ng user na magbabawal sa pag-atake na maganap."

Nag-audit ang Omniscia ng isang bersyon ng kontrata ng MasterPlatypusV1 mula Nob. 21 hanggang Disyembre 5, 2021. Gayunpaman, ang bersyon na ito ay "walang mga integration point sa isang external na platypusTreasure system" at samakatuwid ay hindi naglalaman ng mga maling linya ng code.

Mahalagang tandaan na ang code na pinagsamantalahan ay hindi umiiral sa panahon ng pag-audit ng Omniscia. Ang pananaw ng Omniscia ay nagpapahiwatig na ang mga developer ay dapat na nag-deploy ng bagong bersyon ng kontrata sa isang punto pagkatapos gawin ang pag-audit.

Nauugnay: Inihayag ni Raydium ang mga detalye ng hack, nagmumungkahi ng kabayaran para sa mga biktima

Sinasabi ng auditor na ang pagpapatupad ng kontrata sa Avalanche C-Chain address na 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 ay ang pinagsamantalahan. Lumilitaw na tumatawag ang mga linya 582–584 ng kontratang ito sa isang function na tinatawag na “isSolvent” sa kontrata ng PlatypusTreasure, at lumilitaw ang mga linya 599–601 upang itakda ang halaga, kadahilanan at reward na Utang ng user sa zero. Gayunpaman, ang mga halagang ito ay nakatakda sa zero pagkatapos na matawagan ang function na "isSolvent".

Ang pangkat ng Platypus mapag- noong Peb. 16 na sinamantala ng umaatake ang isang "kapintasan sa [ang] mekanismo ng pagsusuri sa solvency ng USP," ngunit ang koponan ay hindi unang nagbigay ng karagdagang detalye. Ang bagong ulat na ito mula sa auditor ay nagbibigay ng karagdagang liwanag sa kung paano maaaring magawa ng umaatake ang pagsasamantala.

Ang pangkat ng Platypus ay inihayag noong Peb. 16 na ang nangyari ang pag-atake. Sinubukan nitong makipag-ugnayan sa hacker at maibalik ang mga pondo bilang kapalit ng isang bug bounty. Ang umaatake gumamit ng mga flashed na pautang upang maisagawa ang pagsasamantala, na katulad ng diskarte na ginamit sa Pagsasamantala sa Defrost Finance noong Dis. 25, 2022.