Bahasa Move mengekspos kerentanan overflow integer, risiko keruntuhan Node menarik perhatian

Bahasa Move kembali mengalami kerentanan tinggi: Overflow integer dapat menyebabkan Node crash

Baru-baru ini, peneliti keamanan menemukan kerentanan overflow integer baru saat menganalisis bahasa Move secara mendalam, yang dapat menyebabkan Node gagal. Kerentanan ini ada di modul verifikasi keamanan referensi bahasa Move, yang melibatkan analisis blok dasar dan proses penggabungan status.

Numen Cyber menemukan kelemahan berbahaya lainnya dalam bahasa move

Bahasa Move akan melakukan verifikasi kode sebelum mengeksekusi bytecode, yang terbagi menjadi 4 langkah. Kerentanan yang ditemukan kali ini muncul pada tahap verifikasi keamanan (reference_safety). Tahap ini akan menganalisis blok dasar dalam fungsi, memverifikasi legalitas operasi referensi.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Selama proses verifikasi, akan dipelihara sebuah struktur AbstractState yang berisi variabel lokal (locals) dan grafik hubungan peminjaman (borrow graph). Saat menganalisis blok dasar, instruksi di dalam blok akan dieksekusi untuk menghasilkan post state, kemudian digabungkan dengan pre state untuk memperbarui status.

Numen Cyber menemukan celah berbahaya lain dalam bahasa move

Kerentanan muncul dalam fungsi join_ dalam status penggabungan. Fungsi ini akan menjelajahi variabel locals, tetapi locals mencakup parameter fungsi dan variabel lokal. Ketika jumlah parameter ditambah jumlah variabel lokal melebihi 256, terjadi overflow integer karena menggunakan tipe u8 untuk iterasi.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Penyerang dapat membangun blok kode loop khusus, memanfaatkan overflow ini untuk mengubah status. Pada analisis putaran berikutnya, beberapa instruksi mungkin mengakses indeks locals yang tidak ada, sehingga memicu panic yang menyebabkan Node runtuh.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Peneliti telah menyediakan sebuah bukti konsep (PoC), dengan mengatur 264 variabel locals, yang dapat memicu panic pada analisis putaran kedua. Ini mengungkapkan bahwa bahasa Move kekurangan pemeriksaan keamanan yang memadai saat dijalankan.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Kelemahan ini sekali lagi menunjukkan bahwa bahkan bahasa Move yang menekankan keamanan pun mungkin memiliki celah. Disarankan agar perancang bahasa Move menambahkan lebih banyak pemeriksaan keamanan pada saat runtime, bukan hanya bergantung pada analisis statis pada tahap verifikasi. Juga diingatkan kepada para pengembang untuk memperkuat audit kode untuk menghindari kelalaian serupa.

Numen Cyber menemukan celah berisiko tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move

Numen Cyber menemukan celah berbahaya lain dalam bahasa move

Numen Cyber menemukan celah berbahaya lain dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya di bahasa move secara eksklusif

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan celah tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move secara eksklusif

MOVE-7.89%
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
CoconutWaterBoyvip
· 07-30 03:38
move kembali gagal, sudah saatnya ganti
Lihat AsliBalas0
SchrodingerWalletvip
· 07-30 03:36
move sudah kecelakaan lagi ya
Lihat AsliBalas0
0xDreamChaservip
· 07-30 03:34
move lagi crash? Lulus saja tidak cukup cepat
Lihat AsliBalas0
GasFeeCryvip
· 07-30 03:25
move sudah bermasalah lagi
Lihat AsliBalas0
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)