Aplikasi dan Risiko Keamanan Nilai Sentinel di Chrome V8
Nilai Sentinel adalah nilai khusus yang sering digunakan dalam algoritma, biasanya sebagai kondisi terminasi dalam algoritma loop atau rekursi. Teknik ini banyak digunakan dalam kode sumber Chrome. Baru-baru ini, peneliti keamanan menemukan cara untuk melakukan eksekusi kode arbitrer di dalam sandbox Chrome dengan membocorkan objek Nilai Sentinel tertentu.
Di mesin V8, terdapat berbagai objek bawaan yang seharusnya tidak bocor ke dalam lingkungan JavaScript. Selain objek TheHole yang dilaporkan sebelumnya, artikel ini berfokus pada masalah kebocoran objek Uninitialized Oddball. Metode ini masih dapat digunakan pada versi terbaru V8 dan belum diperbaiki.
Perlu dicatat bahwa metode untuk mengeksploitasi kebocoran objek Uninitialized Oddball memiliki tingkat universalitas yang tinggi. Beberapa kerentanan sejarah (seperti CVE-2021-30551, CVE-2022-1486, dll.) melibatkan kebocoran objek semacam ini. Penemuan metode ini mungkin akan mengurangi kesulitan dalam mengeksploitasi kerentanan terkait.
Dengan memodifikasi fungsi asli V8, objek Uninitialized Oddball dapat dengan mudah dibocorkan ke dalam lingkungan JavaScript. Dengan menggunakan metode ini, penyerang dapat melewati mekanisme perlindungan penguatan tipe V8, memungkinkan operasi baca tulis memori yang relatif sewenang-wenang.
Dalam kode JavaScript yang telah dioptimalkan, karena kurangnya pemeriksaan pada map array, metode langsung untuk menghitung offset dan mengembalikan nilai array memiliki risiko keamanan. Disarankan untuk menambahkan validasi pada map array saat fungsi optimasi mengembalikan elemen array, untuk meningkatkan keamanan.
Dampak dari masalah ini mungkin melampaui ekspektasi. Beberapa aplikasi yang menggunakan mesin V8 versi lama mungkin masih memiliki risiko. Misalnya, hingga saat ini Skype belum memperbaiki kerentanan ini. Pada sistem 32-bit, karena kurangnya mekanisme kompresi alamat, penyerang mungkin lebih mudah untuk melakukan baca/tulis memori sembarang.
Secara keseluruhan, masalah keamanan terkait Sentinel Value layak mendapatkan perhatian lebih. Tidak hanya Uninitialized Oddball dan objek TheHole yang dapat menyebabkan risiko keamanan, tetapi Sentinel Value lainnya juga mungkin memiliki risiko serupa. Disarankan untuk memasukkan nilai-nilai khusus ini ke dalam ruang lingkup pengujian fuzz, untuk mengidentifikasi potensi jalur eksploitasi.
Apakah masalah ini secara resmi dianggap sebagai kerentanan keamanan atau tidak, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan penyerang untuk mencapai exploitasi penuh. Oleh karena itu, pihak terkait harus tetap waspada dan segera memperbaiki potensi risiko.
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.
Analisis dan Risiko Keamanan Kerentanan Kebocoran Nilai Sentinel pada Mesin Chrome V8
Aplikasi dan Risiko Keamanan Nilai Sentinel di Chrome V8
Nilai Sentinel adalah nilai khusus yang sering digunakan dalam algoritma, biasanya sebagai kondisi terminasi dalam algoritma loop atau rekursi. Teknik ini banyak digunakan dalam kode sumber Chrome. Baru-baru ini, peneliti keamanan menemukan cara untuk melakukan eksekusi kode arbitrer di dalam sandbox Chrome dengan membocorkan objek Nilai Sentinel tertentu.
Di mesin V8, terdapat berbagai objek bawaan yang seharusnya tidak bocor ke dalam lingkungan JavaScript. Selain objek TheHole yang dilaporkan sebelumnya, artikel ini berfokus pada masalah kebocoran objek Uninitialized Oddball. Metode ini masih dapat digunakan pada versi terbaru V8 dan belum diperbaiki.
Perlu dicatat bahwa metode untuk mengeksploitasi kebocoran objek Uninitialized Oddball memiliki tingkat universalitas yang tinggi. Beberapa kerentanan sejarah (seperti CVE-2021-30551, CVE-2022-1486, dll.) melibatkan kebocoran objek semacam ini. Penemuan metode ini mungkin akan mengurangi kesulitan dalam mengeksploitasi kerentanan terkait.
Dengan memodifikasi fungsi asli V8, objek Uninitialized Oddball dapat dengan mudah dibocorkan ke dalam lingkungan JavaScript. Dengan menggunakan metode ini, penyerang dapat melewati mekanisme perlindungan penguatan tipe V8, memungkinkan operasi baca tulis memori yang relatif sewenang-wenang.
Dalam kode JavaScript yang telah dioptimalkan, karena kurangnya pemeriksaan pada map array, metode langsung untuk menghitung offset dan mengembalikan nilai array memiliki risiko keamanan. Disarankan untuk menambahkan validasi pada map array saat fungsi optimasi mengembalikan elemen array, untuk meningkatkan keamanan.
Dampak dari masalah ini mungkin melampaui ekspektasi. Beberapa aplikasi yang menggunakan mesin V8 versi lama mungkin masih memiliki risiko. Misalnya, hingga saat ini Skype belum memperbaiki kerentanan ini. Pada sistem 32-bit, karena kurangnya mekanisme kompresi alamat, penyerang mungkin lebih mudah untuk melakukan baca/tulis memori sembarang.
Secara keseluruhan, masalah keamanan terkait Sentinel Value layak mendapatkan perhatian lebih. Tidak hanya Uninitialized Oddball dan objek TheHole yang dapat menyebabkan risiko keamanan, tetapi Sentinel Value lainnya juga mungkin memiliki risiko serupa. Disarankan untuk memasukkan nilai-nilai khusus ini ke dalam ruang lingkup pengujian fuzz, untuk mengidentifikasi potensi jalur eksploitasi.
Apakah masalah ini secara resmi dianggap sebagai kerentanan keamanan atau tidak, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan penyerang untuk mencapai exploitasi penuh. Oleh karena itu, pihak terkait harus tetap waspada dan segera memperbaiki potensi risiko.