BlockSec: Analisis Prinsip Serangan GMX

robot
Pembuatan abstrak sedang berlangsung

Penulis: BlockSec

GMX mengalami serangan hacker, kehilangan lebih dari 40 juta dolar. Penyerang memanfaatkan kerentanan reentrancy dan membuka posisi short dalam kondisi kontrak mengaktifkan fitur leverage untuk melancarkan serangan.

Akar masalah terletak pada penggunaan fungsi executeDecreaseOrder yang salah. Parameter pertama dari fungsi tersebut seharusnya adalah akun eksternal (EOA), tetapi penyerang memasukkan alamat kontrak pintar. Hal ini memungkinkan penyerang untuk memasuki kembali sistem selama proses penebusan, memanipulasi status internal, dan akhirnya menebus aset yang jauh melebihi nilai GLP yang sebenarnya mereka miliki.

Mekanisme penebusan GLP normal

Di GMX, GLP adalah token penyedia likuiditas yang mewakili bagian dari aset kas (seperti USDC, ETH, WBTC). Ketika pengguna memanggil unstakeAndRedeemGlp, sistem menggunakan rumus berikut untuk menghitung jumlah aset yang harus dikembalikan:

redeem_amount = (user_GLP / total_GLP_supply) * AUM

Perhitungan AUM (Total Aset yang Dikelola) adalah:

AUM = Nilai total semua kolam token + Kerugian yang belum direalisasikan dari posisi pendek global - Keuntungan yang belum direalisasikan dari posisi pendek global - Jumlah yang telah dialokasikan - Pengurangan yang telah ditetapkan (aumDeduction)

Mekanisme ini menjamin bahwa pemegang GLP menerima bagian proporsional dari aset nyata dalam kas.

Masalah setelah leverage diaktifkan

Ketika enableLeverage diaktifkan, pengguna dapat membuka posisi leverage (long atau short). Penyerang membuka posisi short WBTC yang besar sebelum menebus GLP.

Karena posisi short yang dibuka segera meningkatkan ukuran posisi short global, sistem secara default menganggap posisi short tersebut rugi meskipun harga belum bergerak, dan bagian dari kerugian yang belum direalisasikan ini akan dihitung sebagai "aset" dari gudang, menyebabkan AUM meningkat secara artifisial. Meskipun gudang tidak benar-benar mendapatkan nilai tambahan, perhitungan penebusan akan didasarkan pada AUM yang terlalu tinggi ini, sehingga penyerang memperoleh aset yang jauh melebihi yang seharusnya mereka dapatkan.

Proses serangan

Serangan transaksi

Ditulis di akhir

Serangan ini mengungkapkan kekurangan serius dalam mekanisme leverage dan desain perlindungan reentrancy GMX. Masalah inti terletak pada logika penebusan aset yang terlalu mengandalkan AUM, tanpa melakukan verifikasi keamanan yang cukup terhadap komponen-komponennya (seperti kerugian yang belum direalisasikan). Selain itu, asumsi identitas pemanggil di fungsi kunci (EOA vs kontrak) juga kurang memiliki verifikasi yang memadai. Peristiwa ini kembali mengingatkan para pengembang bahwa dalam operasi yang melibatkan dana sensitif, penting untuk memastikan bahwa status sistem tidak dapat dimanipul, terutama ketika memperkenalkan logika keuangan yang kompleks (seperti leverage, derivatif), sangat penting untuk mencegah risiko sistemik yang diakibatkan oleh reentrancy dan pencemaran status.

Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)