Serangan platipus mengeksploitasi urutan kode yang salah, kata pengulas

Penafian: Artikel yang diperbarui untuk menunjukkan bahwa Omniscia belum memverifikasi versi kontrak MasterPlatypusV4. Sebagai gantinya, perusahaan menguji rilis kontrak MasterPlatypusV1 dari 21 November hingga 5 Desember 2021.

Serangan flash loan Platipus senilai $8 juta dimungkinkan karena kode berada dalam urutan yang salah, Kedua ke laporan post-mortem oleh auditor Platypus Omniscia. Perusahaan peninjau mengklaim bahwa kode yang bermasalah tidak ada dalam versi yang ditinjau.

Menurut laporan tersebut, kontrak Platypus MasterPlatypusV4 “mengandung kesalahpahaman fatal dalam mekanisme penarikan daruratnya,” yang menyebabkannya melakukan “pemeriksaan kreditnya sebelum memperbarui token LP yang terkait dengan posisi taruhan.”

Laporan tersebut menunjukkan bahwa kode untuk fungsi EmergencyWithdraw memiliki semua elemen yang diperlukan untuk mencegah serangan, tetapi elemen ini hanya ditulis dengan urutan yang salah, seperti yang dijelaskan oleh Omniscia:

“Masalahnya dapat dicegah dengan menyusun ulang pernyataan MasterPlatypusV4::emergencyWithdraw dan menjalankan pemeriksaan solvabilitas setelah jumlah yang dimasukkan pengguna disetel ke 0, yang akan mencegah serangan.”

Omniscia menguji versi kontrak MasterPlatypusV1 dari 21 November hingga 5 Desember 2021. Namun, versi ini “tidak berisi poin integrasi dengan sistem PlatypusTreasure eksternal” dan oleh karena itu tidak berisi baris kode yang salah urutannya.

Penting untuk dicatat bahwa kode yang dieksploitasi tidak ada pada saat audit Omniscia. Pandangan Omniscia menyiratkan bahwa pengembang harus menerapkan versi baru dari kontrak di beberapa titik setelah audit.

Terkait: Raydium mengumumkan detail peretasan, menawarkan kompensasi bagi para korban

Peninjau mengatakan bahwa pelaksanaan kontrak di Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 adalah apa adanya dieksploitasi. Baris 582–584 dari kontrak ini tampaknya memanggil fungsi yang disebut “isSolvent” pada kontrak PlatypusTreasure, dan baris 599–601 tampaknya mengatur jumlah, faktor, dan rewardDebt pengguna ke nol. Namun, jumlah ini disetel ke nol setelah fungsi “isSolvent” dipanggil.

Tim platipus dikonfirmasi pada 16 Februari penyerang mengeksploitasi “cacat dalam (dalam) mekanisme kontrol kelayakan kredit USP,” tetapi tim tersebut awalnya tidak memberikan perincian lebih lanjut. Laporan auditor baru ini menjelaskan lebih lanjut tentang bagaimana penyerang dapat melakukan eksploitasi.

Tim Platipus mengumumkan pada 10 Februari. 16 bahwa serangan itu telah terjadi. Dia berusaha menghubungi peretas dan mendapatkan kembali dananya dengan imbalan hadiah bug. Penyerang menggunakan flash loan untuk mengeksekusi eksploit, yang mirip dengan strategi yang digunakan dalam Pencairan Keuangan feat pada 25 Desember 2022.