Mekanisme keamanan referensi bahasa Move mengungkapkan kerentanan overflow integer yang dapat menyebabkan denial-of-service attack

Mekanisme keamanan referensi bahasa Move memiliki kerentanan overflow integer

Baru-baru ini, peneliti keamanan menemukan kerentanan integer overflow baru saat menganalisis bahasa Move secara mendalam. Kerentanan ini muncul selama proses verifikasi keamanan referensi bahasa Move, yang dapat menyebabkan serangan penolakan layanan.

Numen Cyber menemukan celah keamanan tinggi lainnya di bahasa move

Bahasa Move akan melakukan verifikasi kode sebelum mengeksekusi bytecode, yang terdiri dari 4 langkah. Kerentanan ini ada pada tahap verifikasi referensi keamanan (reference_safety). Tujuan utama dari verifikasi referensi keamanan adalah untuk memastikan tidak ada referensi yang menggantung, akses referensi yang dapat diubah aman, akses referensi penyimpanan global aman, dan lainnya.

Numen Cyber menemukan celah berbahaya lain di bahasa move secara eksklusif

Proses verifikasi akan menjelajahi setiap instruksi bytecode blok dasar. Blok dasar adalah urutan kode yang tidak memiliki instruksi cabang kecuali untuk pintu masuk dan keluarnya. Bahasa Move mengidentifikasi blok dasar dengan menganalisis instruksi cabang dan instruksi loop.

Numen Cyber menemukan celah berbahaya lainnya di bahasa move

Referensi validasi keamanan menggunakan struktur AbstractState untuk melacak variabel lokal dan hubungan referensi. Ini terdiri dari dua bagian: locals dan grafik pinjaman. Saat memvalidasi, status sebelum dan sesudah eksekusi akan dibandingkan, dan pembaruan akan digabungkan.

Numen Cyber menemukan satu lagi kerentanan tinggi dalam bahasa move

Kerentanan muncul di fungsi join_ dalam status penggabungan. Fungsi ini menggunakan tipe u8 untuk mengiterasi locals, tetapi jika jumlah parameter dan variabel lokal melebihi 256, akan menyebabkan overflow integer. Meskipun ada logika untuk memeriksa jumlah locals, panjang parameter tidak dipertimbangkan.

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya pada bahasa move

Numen Cyber menemukan celah berbahaya lain dalam bahasa move secara eksklusif

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan lagi kerentanan tinggi dalam bahasa move

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lain dalam bahasa move

Numen Cyber menemukan eksklusif celah berbahaya lainnya di bahasa move

Penyerang dapat membangun blok dasar berulang, memanfaatkan overflow ini untuk mengubah status. Melakukan eksekusi lagi dengan mengakses indeks locals yang tidak ada akan menyebabkan panic, yang menyebabkan penolakan layanan.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Kelemahan ini mencerminkan bahwa bahkan bahasa yang aman dengan tipe statis pun dapat memiliki celah keamanan. Disarankan agar bahasa Move menambahkan lebih banyak pemeriksaan keamanan pada runtime, tidak hanya bergantung pada tahap verifikasi. Ini juga menunjukkan pentingnya audit kode.

MOVE-3.14%
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
AllTalkLongTradervip
· 4jam yang lalu
Kode sudah keluar lagi
Lihat AsliBalas0
WhaleWatchervip
· 07-31 00:57
Apakah patch sudah dalam perjalanan?
Lihat AsliBalas0
BlockDetectivevip
· 07-31 00:49
Perbaikannya sangat tepat waktu.
Lihat AsliBalas0
TokenGuruvip
· 07-31 00:41
Bahaya tidak boleh diabaikan
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)