Kebocoran Nilai Sentinel dan Bypass HardenProtect Chrome V8
Dalam kode sumber Chrome terdapat banyak nilai Sentinel, yang biasanya digunakan dalam algoritma sebagai kondisi terminasi untuk loop atau rekursi. Penelitian terbaru menunjukkan bahwa kebocoran nilai Sentinel tertentu dapat menyebabkan eksekusi kode sembarang di dalam sandbox Chrome.
Selain objek TheHole yang diketahui, ada objek bawaan lain di V8 yang seharusnya tidak bocor ke lingkungan JavaScript. Artikel ini berfokus pada objek Uninitialized Oddball, yang metode penghindarannya masih dapat diterapkan pada versi terbaru V8 dan belum diperbaiki.
Perlu dicatat bahwa metode ini memiliki aplikasi yang luas. Dalam beberapa kerentanan yang dilaporkan, kebocoran Uninitialized Oddball dapat menyebabkan eksekusi kode jarak jauh. Ini menyoroti perlunya audit menyeluruh terhadap perangkat lunak yang mungkin terpengaruh oleh PatchGap.
Sebagian besar objek bawaan di V8 didefinisikan dalam file v8/src/roots/roots.h, dan mereka berurutan dalam memori. Setelah objek-objek ini secara tidak sengaja terekspos ke JavaScript, itu dapat memungkinkan eksekusi kode sembarang di dalam sandbox.
Untuk memverifikasi metode ini, kita dapat memodifikasi fungsi bawaan V8 agar mengembalikan objek Uninitialized Oddball. Dengan cara ini, kita dapat melakukan pembacaan memori yang relatif sembarang di versi terbaru V8.
Inti dari metode bypass ini adalah bahwa fungsi JavaScript yang dioptimalkan tidak memeriksa informasi tipe array dengan cukup saat mengakses elemen array, melainkan langsung menghitung offset untuk mendapatkan nilai. Ini mengakibatkan kebingungan tipe, yang memungkinkan pembacaan sembarang.
Saran perbaikan adalah dengan menambahkan pemeriksaan pada array map saat fungsi yang telah dioptimalkan mengembalikan elemen array, untuk menghindari penghitungan nilai array secara langsung melalui offset.
Selain itu, kita juga perlu memperhatikan masalah PatchGap yang mungkin ada dalam rantai pasokan perangkat lunak. Beberapa perangkat lunak yang banyak digunakan mungkin masih belum memperbaiki celah semacam ini, yang memberikan kemungkinan titik masuk bagi para penyerang.
Secara keseluruhan, terdapat berbagai nilai Sentinel dalam V8, dan kebocoran mereka dapat menyebabkan masalah keamanan. Arah penelitian di masa depan mungkin termasuk: mengeksplorasi dampak kebocoran Uninitialized Oddball lainnya, mengevaluasi kelayakan pengenalan nilai Sentinel sebagai variabel dalam pengujian fuzz, serta meninjau masalah keamanan terkait secara lebih komprehensif. Terlepas dari apakah masalah semacam itu secara resmi diakui sebagai kerentanan keamanan, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan penyerang untuk mencapai pemanfaatan penuh.
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.
9 Suka
Hadiah
9
5
Posting ulang
Bagikan
Komentar
0/400
LiquidatedDreams
· 10jam yang lalu
Gelombang lagi... Kenapa Chrome yang berantakan ini tidak diperbaiki?
Lihat AsliBalas0
GasWaster
· 10jam yang lalu
Kotak ini banyak celah, sudah seperti badut, fam
Lihat AsliBalas0
GasOptimizer
· 10jam yang lalu
Kerentanan rekursif menyumbang 89,4% dari kemungkinan insiden keamanan.
Kebocoran Nilai Sentinel pada mesin Chrome V8 menyebabkan risiko pelarian sandbox
Kebocoran Nilai Sentinel dan Bypass HardenProtect Chrome V8
Dalam kode sumber Chrome terdapat banyak nilai Sentinel, yang biasanya digunakan dalam algoritma sebagai kondisi terminasi untuk loop atau rekursi. Penelitian terbaru menunjukkan bahwa kebocoran nilai Sentinel tertentu dapat menyebabkan eksekusi kode sembarang di dalam sandbox Chrome.
Selain objek TheHole yang diketahui, ada objek bawaan lain di V8 yang seharusnya tidak bocor ke lingkungan JavaScript. Artikel ini berfokus pada objek Uninitialized Oddball, yang metode penghindarannya masih dapat diterapkan pada versi terbaru V8 dan belum diperbaiki.
Perlu dicatat bahwa metode ini memiliki aplikasi yang luas. Dalam beberapa kerentanan yang dilaporkan, kebocoran Uninitialized Oddball dapat menyebabkan eksekusi kode jarak jauh. Ini menyoroti perlunya audit menyeluruh terhadap perangkat lunak yang mungkin terpengaruh oleh PatchGap.
Sebagian besar objek bawaan di V8 didefinisikan dalam file v8/src/roots/roots.h, dan mereka berurutan dalam memori. Setelah objek-objek ini secara tidak sengaja terekspos ke JavaScript, itu dapat memungkinkan eksekusi kode sembarang di dalam sandbox.
Untuk memverifikasi metode ini, kita dapat memodifikasi fungsi bawaan V8 agar mengembalikan objek Uninitialized Oddball. Dengan cara ini, kita dapat melakukan pembacaan memori yang relatif sembarang di versi terbaru V8.
Inti dari metode bypass ini adalah bahwa fungsi JavaScript yang dioptimalkan tidak memeriksa informasi tipe array dengan cukup saat mengakses elemen array, melainkan langsung menghitung offset untuk mendapatkan nilai. Ini mengakibatkan kebingungan tipe, yang memungkinkan pembacaan sembarang.
Saran perbaikan adalah dengan menambahkan pemeriksaan pada array map saat fungsi yang telah dioptimalkan mengembalikan elemen array, untuk menghindari penghitungan nilai array secara langsung melalui offset.
Selain itu, kita juga perlu memperhatikan masalah PatchGap yang mungkin ada dalam rantai pasokan perangkat lunak. Beberapa perangkat lunak yang banyak digunakan mungkin masih belum memperbaiki celah semacam ini, yang memberikan kemungkinan titik masuk bagi para penyerang.
Secara keseluruhan, terdapat berbagai nilai Sentinel dalam V8, dan kebocoran mereka dapat menyebabkan masalah keamanan. Arah penelitian di masa depan mungkin termasuk: mengeksplorasi dampak kebocoran Uninitialized Oddball lainnya, mengevaluasi kelayakan pengenalan nilai Sentinel sebagai variabel dalam pengujian fuzz, serta meninjau masalah keamanan terkait secara lebih komprehensif. Terlepas dari apakah masalah semacam itu secara resmi diakui sebagai kerentanan keamanan, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan penyerang untuk mencapai pemanfaatan penuh.