Menjelajahi Risiko Keamanan Nilai Sentinel di Mesin Chrome V8
Nilai Sentinel adalah nilai khusus dalam algoritma, biasanya digunakan sebagai kondisi penghentian dalam algoritma loop atau rekursi. Dalam kode sumber Chrome terdapat berbagai nilai Sentinel, beberapa di antaranya dapat menyebabkan kerentanan keamanan. Artikel ini akan membahas cara melewati mekanisme perlindungan HardenProtect dari mesin Chrome V8 dengan membocorkan objek Uninitialized Oddball.
Nilai Sentinel di V8
Di dalam mesin V8, didefinisikan berbagai objek bawaan, yang disusun berurutan dalam memori. Jika objek bawaan yang seharusnya tidak bocor ke JavaScript bocor, ini dapat menyebabkan eksekusi kode sembarang di dalam sandbox.
Menghindari perlindungan HardenType
Dengan memodifikasi fungsi native V8, objek Uninitialized Oddball dapat dibocorkan ke dalam JavaScript. Dengan memanfaatkan objek yang bocor ini, operasi baca/tulis yang relatif sembarangan dapat dilakukan, sehingga dapat melewati perlindungan HardenType.
Metode implementasi spesifik adalah:
Ubah fungsi %TheHole() untuk mengembalikan objek Uninitialized Oddball
Membangun kode JavaScript khusus, memanfaatkan fungsi yang dioptimalkan yang tidak memeriksa array map, langsung menghitung offset dan mengembalikan nilai array.
Melalui kebingungan jenis, mencapai pembacaan dan penulisan sembarang
Peringatan Risiko PatchGap
Metode bypass ini tidak hanya berlaku untuk V8 versi terbaru, tetapi juga dapat mempengaruhi perangkat lunak yang menggunakan V8 versi lama. Misalnya, Skype saat ini masih belum memperbaiki kerentanan ini. Di bawah arsitektur x86, karena kurangnya kompresi alamat, rentang pembacaan dan penulisan sembarang mungkin lebih besar.
Selain itu, metode bypass baru ini juga dapat mengurangi kesulitan eksploitasi kerentanan terkait lainnya, seperti Issue1314616 dan Issue1216437.
Ringkasan dan Pemikiran
Di V8 juga terdapat berbagai nilai Sentinel lainnya, yang mungkin memiliki potensi risiko keamanan. Arah penelitian di masa depan mungkin termasuk:
Menjelajahi apakah kebocoran Uninitialized Oddball lainnya juga dapat mencapai RCE V8
Pertimbangkan untuk menambahkan nilai Sentinel sebagai variabel dalam pengujian fuzzing untuk menemukan lebih banyak potensi eksploitasi.
Perhatikan apakah masalah semacam ini akan dianggap sebagai masalah keamanan secara resmi, dan evaluasi dampaknya terhadap pemendekan siklus pemanfaatan penuh oleh peretas.
Apakah masalah ini secara resmi diklasifikasikan sebagai masalah keamanan atau tidak, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan peretas untuk memanfaatkan sepenuhnya. Oleh karena itu, sangat penting untuk terus memantau dan meneliti masalah keamanan yang terkait dengan nilai Sentinel.
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.
17 Suka
Hadiah
17
6
Bagikan
Komentar
0/400
AirdropSweaterFan
· 07-08 03:03
Apakah ini lubang v8 lagi? Bulan lalu baru saja diperbaiki banyak.
Lihat AsliBalas0
HashBard
· 07-05 03:39
omg sentinels v8 seperti puisi... yang rusak membocorkan semua rahasia fr fr
Lihat AsliBalas0
RetiredMiner
· 07-05 03:38
Bug ini saya bisa menulis exp dengan mata tertutup.
Lihat AsliBalas0
GhostInTheChain
· 07-05 03:31
mesin v8 bermain besar lagi ya
Lihat AsliBalas0
DeFiChef
· 07-05 03:30
Menarik, saya harus lebih ikuti celah ini.
Lihat AsliBalas0
TradFiRefugee
· 07-05 03:17
Saya tahu lubang ini dengan baik, tidak ada masalah~
Analisis dan Pemanfaatan Kerentanan Keamanan Nilai Sentinel pada Mesin Chrome V8
Menjelajahi Risiko Keamanan Nilai Sentinel di Mesin Chrome V8
Nilai Sentinel adalah nilai khusus dalam algoritma, biasanya digunakan sebagai kondisi penghentian dalam algoritma loop atau rekursi. Dalam kode sumber Chrome terdapat berbagai nilai Sentinel, beberapa di antaranya dapat menyebabkan kerentanan keamanan. Artikel ini akan membahas cara melewati mekanisme perlindungan HardenProtect dari mesin Chrome V8 dengan membocorkan objek Uninitialized Oddball.
Nilai Sentinel di V8
Di dalam mesin V8, didefinisikan berbagai objek bawaan, yang disusun berurutan dalam memori. Jika objek bawaan yang seharusnya tidak bocor ke JavaScript bocor, ini dapat menyebabkan eksekusi kode sembarang di dalam sandbox.
Menghindari perlindungan HardenType
Dengan memodifikasi fungsi native V8, objek Uninitialized Oddball dapat dibocorkan ke dalam JavaScript. Dengan memanfaatkan objek yang bocor ini, operasi baca/tulis yang relatif sembarangan dapat dilakukan, sehingga dapat melewati perlindungan HardenType.
Metode implementasi spesifik adalah:
Peringatan Risiko PatchGap
Metode bypass ini tidak hanya berlaku untuk V8 versi terbaru, tetapi juga dapat mempengaruhi perangkat lunak yang menggunakan V8 versi lama. Misalnya, Skype saat ini masih belum memperbaiki kerentanan ini. Di bawah arsitektur x86, karena kurangnya kompresi alamat, rentang pembacaan dan penulisan sembarang mungkin lebih besar.
Selain itu, metode bypass baru ini juga dapat mengurangi kesulitan eksploitasi kerentanan terkait lainnya, seperti Issue1314616 dan Issue1216437.
Ringkasan dan Pemikiran
Di V8 juga terdapat berbagai nilai Sentinel lainnya, yang mungkin memiliki potensi risiko keamanan. Arah penelitian di masa depan mungkin termasuk:
Apakah masalah ini secara resmi diklasifikasikan sebagai masalah keamanan atau tidak, mereka dapat secara signifikan memperpendek waktu yang dibutuhkan peretas untuk memanfaatkan sepenuhnya. Oleh karena itu, sangat penting untuk terus memantau dan meneliti masalah keamanan yang terkait dengan nilai Sentinel.