Kerentanan baru pada mesin Chrome V8: Kebocoran Uninitialized Oddball yang melewati sandbox

robot
Pembuatan abstrak sedang berlangsung

Melalui Kebocoran Nilai Sentinel untuk Memotong Proses Perlindungan HardenProtect Chrome V8

Pendahuluan

Nilai sentinel adalah nilai khusus dalam algoritma, sering digunakan dalam algoritma loop atau rekursi sebagai kondisi terminasi. Nilai semacam ini banyak digunakan dalam kode sumber Chrome. Baru-baru ini, peneliti keamanan menemukan bahwa dengan membocorkan objek TheHole, eksekusi kode sembarang dalam sandbox Chrome dapat dicapai. Tim Google kemudian dengan cepat memperbaiki dua kerentanan yang ada di alam liar ini.

Namun, ada objek asli lain di V8 yang seharusnya tidak bocor ke JavaScript. Artikel ini akan membahas objek baru: Uninitialized Oddball. Metode bypass ini pertama kali muncul dalam masalah yang diajukan oleh anggota Project0, dan masih dapat digunakan di versi terbaru V8.

Perlu dicatat bahwa metode ini memiliki universalitas yang kuat:

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

  2. POC dari CVE-2022-1486 juga secara langsung membocorkan UninitializedOddball.

  3. Sebuah Issue yang tidak dialokasikan CVE juga menggunakan metode ini.

Kasus-kasus ini cukup untuk menunjukkan pentingnya masalah tersebut, dan layak untuk meninjau kembali perangkat lunak yang mungkin terpengaruh.

Eksklusif mengungkap cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

Nilai Sentinel di V8

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

Kita dapat membocorkan Uninitialized Oddball ke JavaScript dengan memodifikasi fungsi native V8. Cara spesifiknya adalah dengan mengubah offset relatif terhadap isolate dalam fungsi %TheHole() sehingga mengembalikan Uninitialized Oddball.

Eksklusif Mengungkap Cara Melewati Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

Mengungkap secara eksklusif cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

Menghindari HardenType

Menggunakan Uninitialized Oddball dapat mencapai pembacaan dan penulisan yang relatif sembarangan. Kuncinya adalah, fungsi read yang dioptimalkan hanya memeriksa atribut prop dari obj, tetapi tidak memeriksa nilai obj.prop sebagai kunci. Ini mengakibatkan kebingungan tipe saat perhitungan, yang memungkinkan pembacaan sembarangan.

Eksklusif Mengungkap Cara Membocorkan Nilai Sentinel untuk Menghindari Chrome v8 HardenProtect

Mengungkap secara eksklusif cara melewati HardenProtect Chrome v8 melalui kebocoran Nilai Sentinel

Eksklusif Mengungkap Cara Mengelak Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Dalam arsitektur x86, karena tidak ada kompresi alamat, pembacaan dan penulisan sembarang adalah relatif terhadap seluruh proses. Meskipun kehilangan kemudahan yang dibawa oleh kompresi alamat, karena beberapa file perangkat lunak besar cukup besar, masih ada kemungkinan tinggi untuk membaca dan menulis ke konten target.

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Peringatan PatchGap

PatchGap kali ini tidak hanya mencakup Issue1352549, tetapi juga mencakup beberapa kerentanan serupa seperti Issue1314616 dan Issue1216437. Setelah metode bypass baru dipublikasikan, tingkat kesulitan untuk mengeksploitasi kerentanan ini sangat menurun. Para peretas hampir tidak perlu melakukan penelitian tambahan untuk menyelesaikan rantai eksploitasi yang lengkap.

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

Ringkasan

Masih ada banyak nilai Sentinel lainnya di V8, yang mungkin juga memiliki masalah serupa. Ini memberi kita beberapa wawasan:

  1. Apakah kebocoran uninitialized_Oddball lainnya juga bisa mencapai V8 RCE?

  2. Apakah masalah seperti ini harus secara resmi dianggap sebagai masalah keamanan?

  3. Apakah nilai Sentinel harus dimasukkan sebagai variabel dalam pengujian Fuzzer?

Bagaimanapun, masalah seperti ini akan sangat memperpendek periode di mana peretas dapat memanfaatkan sepenuhnya, dan ini layak untuk mendapatkan perhatian besar dari kita.

Pengungkapan Eksklusif Cara Melewati Chrome v8 HardenProtect melalui Kebocoran Sentinel Value

SENC1.44%
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
  • Posting ulang
  • Bagikan
Komentar
0/400
ContractTestervip
· 08-15 05:19
Masalah baru dari celah lama muncul lagi.
Lihat AsliBalas0
BlockchainWorkervip
· 08-13 17:55
Bug v8 ini sangat serius.
Lihat AsliBalas0
SocialFiQueenvip
· 08-12 12:23
Masalah serius perlu diikuti penyelesaiannya
Lihat AsliBalas0
CryptoFortuneTellervip
· 08-12 12:15
Celah belum diperbaiki ya
Lihat AsliBalas0
GamefiHarvestervip
· 08-12 12:12
Wow, V8 sudah keluar lagi.
Lihat AsliBalas0
CryptoSurvivorvip
· 08-12 12:11
Sekali lagi kotak pasir dilewati
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)