Jarvis Network mengalami serangan reentrancy Pinjaman Flash kehilangan 66.3 ribu MATIC

Analisis Serangan Re-entrance Pinjaman Flash pada Jarvis Network

Baru-baru ini, sebuah proyek bernama Jarvis_Network mengalami serangan reentrancy pada Pinjaman Flash, yang mengakibatkan kerugian sekitar 66,3 ribu token MATIC. Peristiwa ini terjadi pada malam 15 Januari 2023.

Analisis Kejadian Serangan Re-entrancy Pinjaman Flash Jarvis Network

Melalui analisis mendalam terhadap tumpukan panggilan transaksi, kami menemukan bahwa penyerang memanfaatkan kerentanan reentrancy. Dalam proses reentrancy, fungsi yang sama dari kontrak yang sama dipanggil beberapa kali, tetapi nilai kembalian dari setiap panggilan memiliki perbedaan yang sangat besar. Perbedaan ini terutama terlihat pada fungsi remove_liquidity.

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Serangan reentrancy terjadi selama proses penghapusan likuiditas. Karena Polygon dan EVM adalah rantai homomorfik, saat MATIC ditransfer ke kontrak, logika reentrancy kontrak terpicu. Dengan analisis rinci pada stack pemanggilan, kami menemukan masalah berada di fungsi getUnderlyingPrice.

Analisis Insiden Serangan Re-entrance Pinjaman Flash Jarvis Network

Penyelidikan lebih lanjut menunjukkan bahwa penyerang memanfaatkan celah waktu dalam pembaruan variabel self.D saat menghapus likuiditas. Dalam kondisi normal, alur metode remove_liquidity seharusnya adalah: 1) menghancurkan LP pengguna; 2) mengirimkan dana yang dipertaruhkan kepada pengguna; 3) memperbarui self.D. Namun, penyerang melakukan operasi reentrancy pada langkah kedua, yang mengakibatkan kesalahan serius dalam perhitungan harga.

Analisis Peristiwa Serangan Reentrancy Pinjaman Flash Jarvis Network

Meskipun fungsi remove_liquidity menggunakan dekorator @nonreentrant('lock') untuk mencegah reentrasi, karena penyerang masuk kembali ke kontrak lain untuk meminjam dana, kunci reentrasi ini tidak berfungsi.

Analisis Peristiwa Serangan Reentrancy Pinjaman Flash Jarvis Network

Serangan kali ini terutama mengungkapkan dua masalah:

  1. Logika modifikasi variabel terletak setelah panggilan eksternal, menyebabkan anomali pengambilan harga.
  2. Reentrancy antar kontrak membuat kunci reentrancy tidak berfungsi.

Analisis Kasus Serangan Reentrancy Pinjaman Flash Jarvis Network

Untuk mencegah serangan serupa, disarankan agar pihak proyek mengambil langkah-langkah berikut:

  1. Pastikan kode telah menjalani audit keamanan yang ketat.
  2. Letakkan modifikasi variabel sebelum pemanggilan eksternal.
  3. Menggunakan metode multi-sumber data untuk mendapatkan harga.
  4. Mengikuti norma pengkodean "pertama menilai, kemudian menulis ke variabel, lalu melakukan panggilan eksternal" (Checks-Effects-Interactions).

Analisis Kejadian Serangan Re-entrancy Pinjaman Flash Jarvis Network

Dengan mengambil langkah-langkah ini, proyek dapat secara signifikan meningkatkan keamanan dan stabilitasnya, serta memberikan layanan yang lebih andal bagi pengguna.

Analisis insiden serangan reentrancy Pinjaman Flash Jarvis Network

Analisis Insiden Serangan Re-Entrant Pinjaman Flash Jarvis Network

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 2
  • Bagikan
Komentar
0/400
WalletAnxietyPatientvip
· 3jam yang lalu
Investor ritel yang suka bermain dan tidak berpengalaman, ingat untuk mencadangkan Kunci Pribadi tepat waktu.

Bahasa konten: Mandarin

Komentar yang diberikan:

Tidak melakukan audit kontrak dan menderita kerugian ini.
Lihat AsliBalas0
LiquidatedNotStirredvip
· 3jam yang lalu
Sekali lagi reentrancy haha, seharusnya sudah dikunci.
Lihat AsliBalas0
  • 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)