Kebocoran Nilai Sentinel V8 Engine menimbulkan risiko keamanan Uninitialized Oddball menjadi jenis serangan baru

robot
Pembuatan abstrak sedang berlangsung

Analisis Masalah Keamanan yang Disebabkan oleh Kebocoran Nilai Sentinel di Mesin Chrome v8

Nilai Sentinel adalah nilai khusus dalam algoritma, biasanya digunakan sebagai kondisi akhir dalam algoritma loop atau rekursi. Dalam kode sumber Chrome, terdapat beberapa nilai Sentinel, dan beberapa di antaranya jika bocor ke lingkungan JavaScript dapat menyebabkan masalah keamanan.

Sebelumnya, ada penelitian yang menunjukkan bahwa dengan membocorkan objek TheHole, dapat dilakukan eksekusi kode sembarang di dalam sandbox Chrome. Tim Google segera memperbaiki CVE terkait setelahnya. Namun, selain objek TheHole, ada objek native lain di v8 yang seharusnya tidak dibocorkan ke JS. Artikel ini akan membahas objek Uninitialized Oddball, metode bypass ini masih dapat digunakan di versi terbaru V8.

Perlu dicatat bahwa metode ini memiliki tingkat universalitas tertentu:

  1. Dalam CVE-2021-30551, POC awal adalah kebocoran oddball internal yang tidak diinisialisasi.

  2. Dalam CVE-2022-1486, POC juga secara langsung mengungkapkan UninitializedOddball.

  3. Issue1352549( memberikan kode eksploitasi lengkap untuk CVE) yang belum dialokasikan.

Kasus-kasus ini menunjukkan bahwa kebocoran Uninitialized Oddball dapat menyebabkan masalah keamanan yang serius.

Nilai Sentinel dalam V8

Sebagian besar objek native V8 didefinisikan dalam file v8/src/roots/roots.h, objek-objek ini disusun berurutan dalam memori. Jika objek native yang seharusnya tidak bocor bocor ke JavaScript, mungkin dapat melakukan eksekusi kode sembarang di dalam sandbox.

Untuk memverifikasi ini, kita dapat memodifikasi fungsi native V8, untuk membocorkan Uninitialized Oddball ke dalam JavaScript. Secara khusus, kita dapat memodifikasi offset relatif terhadap isolate dalam fungsi %TheHole(), sehingga mengembalikan Uninitialized Oddball.

Eksklusif Mengungkap Cara Melalui Kebocoran Nilai Sentinel untuk Menghindari Chrome v8 HardenProtect

Menghindari perlindungan HardenType

Menggunakan Uninitialized Oddball dapat mencapai pembacaan relatif sembarang. Kode kunci adalah sebagai berikut:

javascript fungsi read(obj, idx) { return obj[idx]; }

let uninitialized_oddball = %TheHole(); let ab = new ArrayBuffer(8); let fa = new Float64Array(ab); let ia = new BigInt64Array(ab);

let evil = [1.1, 2.2, 3.3]; evil.prop = 1;

%PrepareFunctionForOptimization(baca); baca(jahat, 0); baca(jahat, 1); %OptimizeFunctionOnNextCall(baca); read(jahat, 0);

let val = read(uninitialized_oddball, "prop"); fa[0] = val; console.log(ia[0]);

Dalam kode rakitan yang dioptimalkan, offset akan dihitung dan nilai array akan dikembalikan langsung sesuai dengan semantik JavaScript, tanpa memeriksa nilai obj.prop sebagai key. Ini mengakibatkan kebingungan tipe, yang memungkinkan pembacaan sembarang.

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

Karena Uninitialized Oddball memiliki urutan lebih awal dan lebih primitif dalam memori V8, lebih mudah untuk dipalsukan dibandingkan objek TheHole, ini adalah metode pilihan untuk menghindari HardenType.

Solusi perbaikan yang disarankan adalah dengan menambahkan pemeriksaan pada map array saat fungsi yang dioptimalkan mengembalikan elemen array, untuk menghindari perhitungan offset langsung yang mengembalikan nilai array.

Pengungkapan eksklusif tentang cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

Peringatan PatchGap

Setelah menganalisis Issue1352549, ditemukan bahwa beberapa perangkat lunak mungkin memiliki masalah PatchGap. Misalnya, Skype saat ini masih belum memperbaiki kerentanan tersebut. Di platform x86, karena tidak adanya kompresi alamat, pembacaan dan penulisan sembarang adalah relatif terhadap seluruh proses.

Meskipun Skype telah mengaktifkan ASLR, karena berkasnya yang besar, peretas hanya perlu membaca dan menulis pada alamat tetap tertentu, sehingga memiliki kemungkinan besar untuk membaca dan menulis isi berkas Skype. Dengan menggabungkan metode tradisional seperti analisis PE, seluruh rantai eksploitasi dapat diselesaikan.

PatchGap kali ini tidak hanya terkait dengan Issue1352549, tetapi juga akan secara signifikan mengurangi kesulitan dalam memanfaatkan kerentanan seperti CVE-2022-1486 dan CVE-2021-30551. Hacker hampir tidak perlu melakukan penelitian tambahan untuk mencapai pemanfaatan penuh.

Eksklusif Mengungkap Cara Melewati Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Ringkasan

Artikel ini secara singkat membahas metode untuk melakukan pembacaan arbitrer melalui kebocoran Uninitialized Oddball. Di V8 juga terdapat banyak nilai Sentinel lainnya, yang mungkin memiliki kerentanan keamanan serupa. Ini memberikan kita wawasan berikut:

  1. Apakah kebocoran Uninitialized Oddball lainnya juga dapat dengan mudah mencapai RCE V8.

  2. Apakah masalah semacam ini seharusnya secara resmi dianggap sebagai masalah keamanan masih menjadi perdebatan.

  3. Apakah perlu menambahkan %TheHole/Uninitialized Oddball sebagai variabel di dalam Fuzzer untuk menggali primitif eksploitasi baru.

Bagaimanapun, masalah semacam ini akan sangat memperpendek siklus bagi hacker untuk mencapai pemanfaatan penuh, dan ini layak untuk mendapat perhatian tinggi dari kita.

Pengungkapan Eksklusif Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect melalui Kebocoran Sentinel Value

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect melalui Kebocoran Nilai Sentinel

Eksklusif Mengungkap Cara Melalui Kebocoran Sentinel Value untuk Menghindari Chrome v8 HardenProtect

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect melalui Kebocoran Sentinel Value

SENC2.25%
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
  • 5
  • Bagikan
Komentar
0/400
HallucinationGrowervip
· 7jam yang lalu
Wah, bagaimana bisa bocor?
Lihat AsliBalas0
CodeAuditQueenvip
· 7jam yang lalu
Satu lagi varian CVE Attack Surface, eh.
Lihat AsliBalas0
WhaleWatchervip
· 7jam yang lalu
Apakah Google sedang bermain api? Mundur dalam sejarah.
Lihat AsliBalas0
BearMarketSurvivorvip
· 7jam yang lalu
Benar-benar bug yang tidak ada habisnya.
Lihat AsliBalas0
CryptoAdventurervip
· 7jam yang lalu
Apakah ini saat yang baik untuk membayar pajak IQ? Yang mengerti, mengerti.
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)