Modul keamanan referensi Move language menemukan kerentanan overflow integer yang dapat menyebabkan denial-of-service attack

robot
Pembuatan abstrak sedang berlangsung

Modul keamanan referensi Move menemukan kerentanan overflow integer baru

Baru-baru ini, para peneliti menemukan kerentanan baru berupa overflow integer saat menganalisis bahasa Move secara mendalam. Kerentanan ini ada di modul keamanan referensi, yang dapat menyebabkan serangan penolakan layanan yang serius. Artikel ini akan memberikan penjelasan rinci tentang proses penemuan kerentanan ini dan detail teknisnya.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Mekanisme Keamanan Referensi Bahasa Move

Bahasa Move mengadopsi pemikiran Rust, mendukung dua jenis referensi: referensi tidak dapat diubah (&) dan referensi dapat diubah (&mut). Modul keamanan referensi memverifikasi semua operasi referensi yang sah dengan memindai blok dasar dan instruksi bytecode dalam fungsi.

Proses verifikasi terutama mencakup langkah-langkah berikut:

  1. Analisis setiap blok dasar
  2. Menjalankan kode blok dasar untuk menghasilkan post state
  3. Menggabungkan pre state dan post state
  4. Perbarui status blok dan sebar ke blok berikutnya

Di antara itu, state mencakup dua komponen kunci yaitu locals dan borrow graph, yang digunakan untuk memastikan keamanan referensi dalam fungsi.

Numen Cyber menemukan celah keamanan tinggi lainnya dalam bahasa move

Rincian Kerentanan

Vuln ini terjadi di dalam fungsi join_ yang merujuk pada modul keamanan. Ketika jumlah panjang parameter fungsi dan panjang variabel lokal lebih dari 256, penggunaan tipe u8 untuk mengiterasi locals akan menyebabkan overflow integer.

Secara spesifik:

  • iter_locals() mengembalikan iterator tipe u8
  • Ketika panjang parameter + panjang variabel lokal > 256, akan terjadi overflow
  • Para pengembang tampaknya menyadari perlunya memeriksa hal ini, tetapi kode sebenarnya hanya memeriksa jumlah variabel lokal.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Eksploitasi Kerentanan

Memanfaatkan celah ini dapat membangun blok kode berulang:

  1. Memicu overflow saat pertama kali dieksekusi, mengubah peta locals
  2. Mengakses indeks locals yang tidak ada saat eksekusi kedua, menyebabkan panic

Ini akan menyebabkan kegagalan node, membentuk serangan penolakan layanan.

Numen Cyber menemukan celah berbahaya lain dalam bahasa move

Reproduksi Kerentanan

Peneliti menyediakan PoC untuk mereproduksi kerentanan ini:

  1. Atur parameters dan locals menjadi SignatureIndex(0), sehingga num_locals menjadi 264
  2. Setelah eksekusi pertama, panjang peta locals baru menjadi 8
  3. Saat eksekusi kedua, copyloc(57) mengakses offset yang tidak ada menyebabkan panic.

Numen Cyber menemukan celah berbahaya lain dalam bahasa move secara eksklusif

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move secara eksklusif

Penemuan eksklusif Numen Cyber, satu lagi kerentanan tinggi pada bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move secara eksklusif

Numen Cyber menemukan kerentanan tinggi lain pada bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya di bahasa move

Numen Cyber menemukan celah tinggi baru di bahasa move secara eksklusif

Numen Cyber menemukan celah berbahaya baru dalam bahasa move

Ringkasan dan Saran

Keterangan tentang celah ini:

  1. Tidak ada kode yang benar-benar aman, pemeriksaan statis dapat dilewati.
  2. Audit kode sangat penting, dapat menemukan kelalaian pengembang.
  3. Bahasa Move seharusnya menambahkan pemeriksaan waktu berjalan, bukan hanya bergantung pada pemeriksaan keamanan di tahap verifikasi.

Para peneliti menyerukan kepada perancang bahasa Move untuk memperkuat mekanisme keamanan runtime, untuk mencegah masalah yang lebih serius akibat eksploitasi kerentanan serupa.

Numen Cyber menemukan celah keamanan tinggi lainnya pada bahasa move

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
  • 6
  • Bagikan
Komentar
0/400
staking_grampsvip
· 07-06 05:24
Move, celah ini terlalu amatir.
Lihat AsliBalas0
ChainMaskedRidervip
· 07-06 05:22
Keterampilan menulis kode terlalu kasar, bukan?
Lihat AsliBalas0
MissedTheBoatvip
· 07-06 05:20
Ada celah lagi, Move juga tidak begitu baik.
Lihat AsliBalas0
GateUser-c799715cvip
· 07-06 05:19
Siapa yang menulis kode ini? Kenapa begitu buruk?
Lihat AsliBalas0
YieldChaservip
· 07-06 05:17
u8 kembali bermasalah ya
Lihat AsliBalas0
BridgeJumpervip
· 07-06 05:09
Pengembangan yang tidak standar, dua baris air mata memperbaiki bug
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)