Audytor twierdzi, że atak dziobaka wykorzystywał nieprawidłową kolejność kodu

Zastrzeżenie: artykuł został zaktualizowany, aby odzwierciedlić fakt, że Omniscia nie przeprowadziła audytu wersji umowy MasterPlatypusV4. Zamiast tego firma przeprowadziła audyt wersji umowy MasterPlatypusV1 od 21 listopada do 5 grudnia 2021 r.

Atak pożyczki błyskawicznej Platypus o wartości 8 milionów dolarów był możliwy dzięki kodowi, który był w niewłaściwej kolejności, według do raportu z sekcji zwłok audytora Dziobaka Omniscii. Firma audytorska twierdzi, że problematyczny kod nie istniał w wersji, którą skontrolowała.

Zgodnie z raportem, kontrakt Platypus MasterPlatypusV4 „zawierał fatalne nieporozumienie w swoim mechanizmie EmergencyWithdraw”, co zmusiło go do „sprawdzenia wypłacalności przed aktualizacją tokenów LP powiązanych z pozycją stawki”.

W raporcie podkreślono, że kod funkcji EmergencyWithdraw zawierał wszystkie niezbędne elementy, aby zapobiec atakowi, ale elementy te zostały po prostu napisane w niewłaściwej kolejności, jak wyjaśniła Omniscia:

„Problemowi można było zapobiec, zmieniając kolejność wyciągów MasterPlatypusV4::emergencyWithdraw i przeprowadzając kontrolę wypłacalności po ustawieniu kwoty wpisu użytkownika na 0, co uniemożliwiłoby przeprowadzenie ataku”.

Omniscia skontrolowała wersję umowy MasterPlatypusV1 od 21 listopada do 5 grudnia 2021 r. Jednak ta wersja „nie zawierała punktów integracji z zewnętrznym systemem dziobaka” i dlatego nie zawierała źle uporządkowanych linii kodu.

Należy zauważyć, że wykorzystany kod nie istniał w czasie audytu Omniscia. Z punktu widzenia Omniscii wynika, że ​​programiści musieli wdrożyć nową wersję umowy w pewnym momencie po przeprowadzeniu audytu.

Związane z: Raydium zdradza szczegóły włamania, proponuje odszkodowanie dla ofiar

Audytor twierdzi, że realizacja umowy pod adresem Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 jest tą, która została eksploatowany. Wydaje się, że wiersze 582–584 tej umowy wywołują funkcję o nazwie „isSolvent” w kontrakcie PlatypusTreasure, a wiersze 599–601 wydają się ustawiać kwotę, współczynnik i nagrodę Dług użytkownika na zero. Jednak po wywołaniu funkcji „isSolvent” kwoty te są ustawiane na zero.

Zespół Platypusa Zatwierdzony 16 lutego, że atakujący wykorzystał „lukę w mechanizmie sprawdzania wypłacalności USP”, ale zespół początkowo nie podał dalszych szczegółów. Ten nowy raport audytora rzuca dodatkowe światło na sposób, w jaki osoba atakująca mogła wykorzystać ten exploit.

Zespół Platypus ogłosił 16 lutego, że nastąpił atak. Próbował skontaktować się z hakerem i odzyskać środki w zamian za nagrodę za błąd. Napastnik używane błyskawiczne pożyczki do wykonania exploita, który jest podobny do strategii zastosowanej w Exploit Defrost Finance 25 grudnia 2022 r.