Penelitian dan Analisis Risiko Keamanan Kebocoran Nilai Sentinel pada Mesin Chrome V8

Meneliti Risiko Keamanan yang Dihasilkan oleh Kebocoran Nilai Sentinel dalam Mesin Chrome V8

Pendahuluan

Nilai sentinel adalah nilai khusus dalam algoritma, biasanya digunakan sebagai kondisi terminasi dalam algoritma loop atau rekursif. Nilai khusus ini banyak digunakan dalam kode sumber Chrome. Baru-baru ini, para peneliti berhasil mengeksploitasi objek TheHole untuk melaksanakan eksekusi kode arbitrer di dalam sandbox untuk CVE-2021-38003 dan CVE-2022-1364. Tim Google segera memperbaiki kedua kerentanan tersebut.

Namun, selain objek TheHole, masih ada objek native lain di V8 yang seharusnya tidak bocor ke JavaScript. Artikel ini akan fokus pada objek Uninitialized Oddball dan memperkenalkan bagaimana cara memanfaatkan ini untuk menghindari mekanisme HardenProtect V8. Perlu dicatat bahwa metode bypass ini masih berlaku untuk versi terbaru V8 dan belum diperbaiki.

Nilai Sentinel di V8

Sebagian besar objek native V8 didefinisikan dalam file v8/src/roots/roots.h, objek-objek ini disusun berurutan di dalam memori. Begitu objek native yang seharusnya tidak bocor ke dalam JavaScript bocor, itu dapat menyebabkan eksekusi kode sembarangan di dalam sandbox.

Untuk memverifikasi hal ini, kita dapat memodifikasi fungsi native V8 untuk membocorkan Uninitialized Oddball ke dalam JavaScript. Cara spesifiknya adalah dengan memodifikasi offset relatif terhadap isolate dalam fungsi %TheHole() agar mengembalikan Uninitialized Oddball.

Eksklusif Mengungkap Cara Membocorkan Nilai Sentinel untuk Menghindari Chrome v8 HardenProtect

Menghindari perlindungan HardenType

Menggunakan objek Uninitialized Oddball dapat mencapai pembacaan dan penulisan yang relatif sembarangan. Dalam kode JavaScript yang telah dioptimalkan, fungsi read tidak memeriksa nilai dengan obj.prop sebagai kunci, melainkan langsung menghitung offset sesuai dengan semantik JavaScript untuk mendapatkan nilai array. Ini menyebabkan kebingungan tipe selama perhitungan, sehingga memungkinkan pembacaan sembarangan.

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Untuk setiap operasi tulis, dapat merujuk pada metode konstruksi dalam Issue1352549 untuk analisis. Solusi perbaikan yang disarankan adalah menambahkan pemeriksaan pada map array saat fungsi yang dioptimalkan mengembalikan elemen array, untuk menghindari perhitungan langsung offset yang mengembalikan nilai array.

Pengungkapan Eksklusif Melalui Kebocoran Sentinel Value untuk Menghindari Chrome v8 HardenProtect

Eksklusif Mengungkap Cara Membocorkan Sentinel Value untuk Menghindari Chrome v8 HardenProtect

Eksklusif mengungkap cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

Peringatan PatchGap

Setelah menganalisis Issue1352549, kami menemukan bahwa beberapa perangkat lunak mungkin memiliki masalah PatchGap. Perlu dicatat bahwa hingga saat ini Skype masih belum memperbaiki celah tersebut. Di lingkungan x86, implementasi pembacaan dan penulisan sembarangan akan berbeda, karena tidak ada kompresi alamat, dapat langsung beroperasi relatif terhadap seluruh proses.

Pengungkapan Eksklusif tentang Cara Melalui Kebocoran Nilai Sentinel untuk Menghindari Chrome v8 HardenProtect

Masalah PatchGap kali ini tidak hanya melibatkan Issue1352549, tetapi publikasi metode bypass baru juga secara signifikan mengurangi kesulitan dalam memanfaatkan kerentanan seperti Issue1314616 dan Issue1216437. Penyerang hampir tidak memerlukan biaya penelitian untuk menyelesaikan eksploitasi lengkap dari kerentanan uninitialized_oddball yang sebelumnya.

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Pengungkapan Eksklusif tentang Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Ringkasan

Artikel ini secara singkat membahas metode untuk melakukan pembacaan arbitrer melalui kebocoran uninitialized_Oddball dalam nilai Sentinel. Di V8, ada banyak nilai Sentinel lainnya yang juga dapat menyebabkan masalah keamanan serupa. Ini memberi kita wawasan berikut:

  1. Apakah kebocoran uninitialized_Oddball lainnya juga dapat dengan mudah mencapai eksekusi kode jarak jauh V8.

  2. Apakah jenis masalah ini harus dianggap sebagai masalah keamanan resmi masih menjadi perdebatan.

  3. Pertimbangkan untuk menambahkan nilai Sentinel seperti %TheHole/uninitialized_Oddball sebagai variabel dalam fuzzer, untuk menggali pemanfaatan primitif lainnya.

Apakah masalah ini secara resmi dianggap sebagai masalah keamanan atau tidak, mereka akan secara signifikan memperpendek periode bagi peretas untuk memanfaatkan sepenuhnya.

Eksklusif Mengungkap Cara Melewati Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

SENC6.27%
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
  • Bagikan
Komentar
0/400
FUD_Vaccinatedvip
· 07-26 03:20
Lagi-lagi Google, lubang ini terlalu sering muncul.
Lihat AsliBalas0
MetaverseLandlordvip
· 07-24 11:22
Wah, kerentanan browser orang lain begitu canggih.
Lihat AsliBalas0
SerNgmivip
· 07-23 05:34
Sungguh v8 membuat saya pusing...
Lihat AsliBalas0
GateUser-a606bf0cvip
· 07-23 05:34
Hmm? Apakah Chrome lagi bikin masalah?
Lihat AsliBalas0
StablecoinAnxietyvip
· 07-23 05:15
Kesenangan dalam celah keamanan browser!
Lihat AsliBalas0
PonziDetectorvip
· 07-23 05:11
Wah, celah V8 ini cukup besar ya!
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)