Modul keamanan referensi bahasa Move memiliki kerentanan overflow integer
Baru-baru ini, peneliti keamanan menemukan adanya kerentanan integer overflow baru dalam modul keamanan referensi bahasa Move. Kerentanan ini muncul pada langkah reference_safety dalam proses validasi kode, yang dapat menyebabkan serangan penolakan layanan.
Bahasa Move akan melakukan verifikasi kode sebelum mengeksekusi bytecode, yang terdiri dari 4 langkah. reference_safety adalah salah satu langkah penting, digunakan untuk memverifikasi keamanan referensi, termasuk memeriksa apakah ada referensi yang mengambang, apakah akses referensi yang dapat diubah aman, dan lain-lain.
Kelemahan ini berasal dari penanganan jumlah variabel lokal selama proses verifikasi keamanan referensi. Dalam fungsi join_, jika jumlah parameter fungsi dan jumlah variabel lokal melebihi 256, akan menyebabkan overflow tipe u8. Meskipun bahasa Move memiliki proses pemeriksaan jumlah locals, namun hanya memeriksa jumlah variabel lokal, tidak termasuk jumlah parameter.
Penyerang dapat menyusun kode Move khusus, memanfaatkan celah overflow ini untuk mengubah status blok kode. Ketika blok dasar dijalankan lagi, jika indeks yang perlu diakses dalam instruksi tidak ada dalam pemetaan variabel lokal baru, itu akan menyebabkan panic, yang mengakibatkan node crash.
Peneliti keamanan menyediakan bukti konsep (PoC) kode, dengan mengatur sejumlah besar parameter dan variabel lokal, memicu overflow integer, yang akhirnya menyebabkan panic.
Kerentanan ini sekali lagi menunjukkan bahwa bahkan bahasa yang dirancang dengan baik pun dapat memiliki risiko keamanan. Untuk bahasa Move, disarankan agar lebih banyak pemeriksaan keamanan ditambahkan pada waktu eksekusi, bukan hanya bergantung pada pemeriksaan tahap verifikasi. Ini juga mencerminkan pentingnya audit kode, yang dapat dengan cepat mengidentifikasi kelalaian pengembang.
Sebagai pelopor penelitian keamanan bahasa Move, tim keamanan menyatakan akan terus menyelidiki masalah keamanan Move. Mereka juga menemukan celah lain dalam bahasa Move, dan akan mengungkap lebih banyak rincian di kemudian hari.
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.
13 Suka
Hadiah
13
4
Bagikan
Komentar
0/400
SoliditySlayer
· 07-11 20:03
Kelemahan selalu ada, tidak ada yang perlu dikhawatirkan.
Lihat AsliBalas0
BlockchainGriller
· 07-11 20:02
Sekali lagi melihat bugs, lagu Move semakin membingungkan~
Modul keamanan rujukan Move mengalami kerentanan overflow integer yang dapat menyebabkan Node crash
Modul keamanan referensi bahasa Move memiliki kerentanan overflow integer
Baru-baru ini, peneliti keamanan menemukan adanya kerentanan integer overflow baru dalam modul keamanan referensi bahasa Move. Kerentanan ini muncul pada langkah reference_safety dalam proses validasi kode, yang dapat menyebabkan serangan penolakan layanan.
Bahasa Move akan melakukan verifikasi kode sebelum mengeksekusi bytecode, yang terdiri dari 4 langkah. reference_safety adalah salah satu langkah penting, digunakan untuk memverifikasi keamanan referensi, termasuk memeriksa apakah ada referensi yang mengambang, apakah akses referensi yang dapat diubah aman, dan lain-lain.
Kelemahan ini berasal dari penanganan jumlah variabel lokal selama proses verifikasi keamanan referensi. Dalam fungsi join_, jika jumlah parameter fungsi dan jumlah variabel lokal melebihi 256, akan menyebabkan overflow tipe u8. Meskipun bahasa Move memiliki proses pemeriksaan jumlah locals, namun hanya memeriksa jumlah variabel lokal, tidak termasuk jumlah parameter.
Penyerang dapat menyusun kode Move khusus, memanfaatkan celah overflow ini untuk mengubah status blok kode. Ketika blok dasar dijalankan lagi, jika indeks yang perlu diakses dalam instruksi tidak ada dalam pemetaan variabel lokal baru, itu akan menyebabkan panic, yang mengakibatkan node crash.
Peneliti keamanan menyediakan bukti konsep (PoC) kode, dengan mengatur sejumlah besar parameter dan variabel lokal, memicu overflow integer, yang akhirnya menyebabkan panic.
Kerentanan ini sekali lagi menunjukkan bahwa bahkan bahasa yang dirancang dengan baik pun dapat memiliki risiko keamanan. Untuk bahasa Move, disarankan agar lebih banyak pemeriksaan keamanan ditambahkan pada waktu eksekusi, bukan hanya bergantung pada pemeriksaan tahap verifikasi. Ini juga mencerminkan pentingnya audit kode, yang dapat dengan cepat mengidentifikasi kelalaian pengembang.
Sebagai pelopor penelitian keamanan bahasa Move, tim keamanan menyatakan akan terus menyelidiki masalah keamanan Move. Mereka juga menemukan celah lain dalam bahasa Move, dan akan mengungkap lebih banyak rincian di kemudian hari.