Serangan Platypus mengeksploitasi susunan kod yang salah, dakwaan juruaudit

Penafian: Artikel telah dikemas kini untuk menggambarkan bahawa Omniscia tidak mengaudit versi kontrak MasterPlatypusV4. Sebaliknya, syarikat itu mengaudit versi kontrak MasterPlatypusV1 dari 21 Nov hingga 5 Dis 2021.

Serangan pinjaman kilat Platypus bernilai $8 juta telah dibuat kerana kod yang berada dalam susunan yang salah, mengikut kepada laporan bedah siasat daripada juruaudit Platypus Omniscia. Syarikat pengauditan mendakwa kod bermasalah itu tidak wujud dalam versi yang diaudit mereka.

Menurut laporan itu, kontrak Platypus MasterPlatypusV4 "mengandungi salah tanggapan maut dalam mekanisme emergencyWithdrawnya," yang menjadikannya "pemeriksaan kesolvenan sebelum mengemas kini token LP yang dikaitkan dengan kedudukan pegangan."

Laporan itu menekankan bahawa kod untuk fungsi emergencyWithdraw mempunyai semua elemen yang diperlukan untuk menghalang serangan, tetapi unsur-unsur ini hanya ditulis dalam susunan yang salah, seperti yang dijelaskan oleh Omniscia:

“Isu ini boleh dihalang dengan memesan semula penyata MasterPlatypusV4::emergencyWithdraw dan melakukan semakan kesolvenan selepas kemasukan amaun pengguna ditetapkan kepada 0 yang akan melarang serangan daripada berlaku.”

Omniscia telah mengaudit versi kontrak MasterPlatypusV1 dari 21 November hingga 5 Disember 2021. Walau bagaimanapun, versi ini "tidak mengandungi titik integrasi dengan sistem platypusTreasure luaran" dan oleh itu tidak mengandungi baris kod yang salah susunan.

Adalah penting untuk ambil perhatian bahawa kod yang telah dieksploitasi tidak wujud pada masa audit Omniscia. Pandangan Omniscia membayangkan bahawa pembangun mesti telah menggunakan versi baharu kontrak pada satu ketika selepas audit dibuat.

Berkaitan: Raydium mengumumkan butiran penggodaman, mencadangkan pampasan untuk mangsa

Juruaudit mendakwa bahawa pelaksanaan kontrak di Avalanche C-Chain alamat 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 adalah yang dieksploitasi. Baris 582–584 kontrak ini nampaknya memanggil fungsi yang dipanggil “isSolvent” pada kontrak PlatypusTreasure, dan baris 599–601 nampaknya menetapkan jumlah, faktor dan ganjaran Hutang pengguna kepada sifar. Walau bagaimanapun, jumlah ini ditetapkan kepada sifar selepas fungsi "isSolvent" telah dipanggil.

Pasukan Platypus disahkan pada 16 Februari bahawa penyerang mengeksploitasi "kecacatan dalam mekanisme semakan kesolvenan USP," tetapi pasukan itu pada mulanya tidak memberikan butiran lanjut. Laporan baharu daripada juruaudit ini memberi penerangan lanjut tentang cara penyerang mungkin dapat mencapai eksploitasi.

Pasukan Platypus mengumumkan pada 16 Februari bahawa serangan telah berlaku. Ia telah cuba menghubungi penggodam dan mendapatkan dana yang dikembalikan sebagai pertukaran untuk hadiah pepijat. Penyerang pinjaman kilat terpakai untuk melaksanakan eksploitasi, yang serupa dengan strategi yang digunakan dalam Defrost eksploitasi Kewangan pada 25 Dis. 2022.