Kerentanan overflow integer dalam bahasa Move: risiko dalam referensi verifikasi keamanan

Bahasa Move kembali menunjukkan kerentanan tinggi: overflow integer dapat menyebabkan Node crash

Baru-baru ini, peneliti keamanan melakukan analisis mendalam terhadap bahasa Move dan menemukan kerentanan overflow integer baru. Kerentanan ini muncul selama proses verifikasi keamanan referensi bahasa Move dan dapat menyebabkan Node mengalami crash.

Bahasa Move melakukan verifikasi kode sebelum mengeksekusi bytecode, yang dibagi menjadi empat langkah. Kerentanan yang ditemukan kali ini ada pada langkah reference_safety. Langkah ini terutama digunakan untuk memverifikasi keamanan referensi, termasuk memeriksa apakah ada referensi yang menggantung, apakah akses referensi yang dapat diubah aman, dan lain-lain.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move secara eksklusif

Pemicu celah terkait dengan konsep blok dasar dalam bahasa Move. Blok dasar adalah urutan kode yang tidak memiliki instruksi cabang selain titik masuk dan keluarnya. Move mengidentifikasi blok dasar dengan menjelajahi bytecode dan mencari instruksi cabang.

Dalam proses verifikasi keamanan referensi, sistem akan memindai instruksi bytecode di setiap blok dasar, untuk menentukan apakah semua operasi referensi adalah sah. Proses ini menggunakan struktur AbstractState, yang mencakup dua komponen penting yaitu borrow graph dan locals.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Kelemahan muncul dalam fungsi join_. Ketika jumlah panjang parameter dan panjang variabel lokal melebihi 256, kemungkinan terjadi overflow integer karena menggunakan tipe u8 untuk mewakili indeks lokal. Meskipun Move memiliki mekanisme untuk memeriksa jumlah locals, namun tidak termasuk panjang parameter.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Dengan memanfaatkan kerentanan overflow ini, penyerang dapat membangun blok kode loop yang mengubah status blok. Ketika blok dasar dieksekusi lagi, jika indeks yang diperlukan oleh instruksi tidak ada di peta locals yang baru, hal ini akan menyebabkan program crash.

Peneliti telah menyediakan bukti konsep (PoC) kode, yang menunjukkan bagaimana untuk memicu kerentanan ini. Dengan mengatur parameter tertentu dan jumlah variabel lokal, panjang locals map dapat dikurangi menjadi 8. Pada eksekusi berikutnya, mencoba mengakses indeks yang tidak ada 57 akan menyebabkan panic.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan celah tinggi lainnya dalam bahasa move secara eksklusif

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Kerentanan ini sekali lagi membuktikan bahwa tidak ada kode yang sepenuhnya aman. Meskipun bahasa Move melakukan pemeriksaan statis sebelum eksekusi, masih mungkin untuk dilewati oleh overflow integer. Para peneliti menyarankan agar perancang bahasa Move menambahkan lebih banyak kode pemeriksaan pada saat runtime untuk mencegah masalah serupa terjadi.

Saat ini, tim penelitian telah menemukan kerentanan lain dalam bahasa Move, dan akan membagikan lebih banyak detail di kemudian hari. Temuan ini memiliki arti penting untuk perbaikan keamanan bahasa Move.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

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
  • 4
  • Bagikan
Komentar
0/400
PositionPhobiavip
· 6jam yang lalu
Berapa banyak jebakan dalam kode ini, satu-satunya yang bisa lepas adalah satu.
Lihat AsliBalas0
TradFiRefugeevip
· 7jam yang lalu
move ini keamanan masih main apa
Lihat AsliBalas0
APY追逐者vip
· 7jam yang lalu
Sekali lagi runtuh, kredibilitas Move ini...
Lihat AsliBalas0
MemeEchoervip
· 7jam yang lalu
move sudah bermasalah lagi
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)