Kerentanan overflow integer pada modul keamanan referensi Move dapat menyebabkan Node menolak layanan

robot
Pembuatan abstrak sedang berlangsung

Modul keamanan referensi bahasa Move memiliki kerentanan overflow integer

Baru-baru ini, peneliti keamanan menemukan kerentanan serius berupa overflow integer saat menganalisis bahasa Move secara mendalam. Kerentanan ini terdapat dalam modul verifikasi keamanan referensi, yang dapat menyebabkan serangan penolakan layanan. Artikel ini akan menjelaskan secara detail tentang prinsip dan dampak kerentanan ini.

Latar Belakang Kerentanan

Bahasa Move melakukan verifikasi kode sebelum mengeksekusi bytecode, yang mencakup pemeriksaan keamanan referensi. Proses ini dibagi menjadi beberapa langkah, dan kerentanan yang ditemukan kali ini terjadi pada tahap verifikasi reference_safety.

Proses utama verifikasi keamanan adalah:

  1. Membagi kode menjadi blok dasar
  2. Analisis setiap blok dasar
  3. Menggabungkan analisis sebelum dan sesudah
  4. Menyebarkan hasil ke blok berikutnya

Di mana digunakan struktur AbstractState untuk merepresentasikan status analisis, yang mencakup informasi locals dan grafik pinjaman.

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Rincian Kerentanan

Kekurangan muncul di dalam fungsi join_ yang menganalisis status gabungan. Fungsi ini menggunakan tipe u8 untuk iterasi locals, tetapi jika jumlah panjang parameter dan panjang variabel lokal melebihi 256, akan terjadi overflow integer.

Secara spesifik:

  • menggunakan self.iter_locals() untuk mengiterasi locals di dalam fungsi join_
  • iter_locals() mengembalikan iterator tipe u8
  • Jika panjang parameter + panjang variabel lokal > 256, iterator akan meluap

Meskipun Move memiliki proses untuk memverifikasi jumlah locals, tetapi hanya memeriksa jumlah variabel lokal, tidak termasuk panjang parameter.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move secara eksklusif

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan celah berisiko tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan berbahaya lainnya dalam bahasa move secara eksklusif

Numen Cyber menemukan lubang keamanan lainnya yang tinggi pada bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan kerentanan berbahaya lain dalam bahasa move

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan celah keamanan tinggi lainnya dalam bahasa move

Eksploitasi Kerentanan

Penyerang dapat membangun blok kode loop, menggunakan overflow untuk mengubah status blok:

  1. Atur jumlah parameter dan variabel lokal lebih dari 256
  2. Setelah eksekusi pertama, panjang peta locals baru akan meluap menjadi lebih kecil
  3. Menjalankan kembali, mengakses indeks locals yang tidak ada akan menyebabkan panic

Ini mungkin menyebabkan penolakan layanan node.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

Numen Cyber menemukan kerentanan tinggi lainnya dalam bahasa move

Numen Cyber menemukan celah berbahaya lain dalam bahasa move

Dampak Kerentanan

Kerentanan ini dapat menyebabkan:

  1. Pengverifikasi bytecode Move crash
  2. Node blockchain yang bergantung pada Move menolak layanan
  3. Melewati beberapa pemeriksaan keamanan

Saran Perbaikan

  1. Menambahkan pemeriksaan panjang parameter dalam pemeriksaan batas locals.
  2. Gunakan tipe integer yang lebih besar seperti u16 untuk mengiterasi locals
  3. Menambahkan pemeriksaan keamanan tambahan saat runtime

Ringkasan

Kerentanan ini sekali lagi menunjukkan bahwa bahkan bahasa yang dirancang dengan cermat pun dapat memiliki risiko keamanan. Untuk bahasa Move, disarankan agar pemeriksaan keamanan yang diperlukan juga ditambahkan di luar tahap verifikasi, selama waktu eksekusi. Peneliti keamanan akan terus menganalisis bahasa Move secara mendalam untuk menemukan lebih banyak masalah potensial.

Numen Cyber menemukan celah berbahaya lainnya dalam bahasa move

MOVE1.47%
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
  • 6
  • Posting ulang
  • Bagikan
Komentar
0/400
BackrowObservervip
· 08-11 11:51
move sekali lagi mengalami kegagalan
Lihat AsliBalas0
MidnightTradervip
· 08-10 07:32
Ini kode siapa lagi yang ditulis oleh pemula, saya menyerah.
Lihat AsliBalas0
MevShadowrangervip
· 08-10 07:30
Sekali lagi bermain dengan overflow bilangan bulat
Lihat AsliBalas0
WagmiOrRektvip
· 08-10 07:29
还好我之前 tutup semua posisi Move了
Lihat AsliBalas0
CommunityWorkervip
· 08-10 07:27
move akan meledak lagi? Kenapa panik?
Lihat AsliBalas0
CryingOldWalletvip
· 08-10 07:26
Ada celah lagi? move juga tidak menarik lagi, kan?
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)