Analisis Mendalam Risiko Keamanan Nilai Sentinel pada Mesin Chrome V8

robot
Pembuatan abstrak sedang berlangsung

Menyelami Dampak Keamanan Nilai Sentinel dalam Mesin Chrome V8

Nilai Sentinel adalah nilai khusus dalam algoritma, sering digunakan sebagai kondisi terminasi dalam algoritma loop atau rekursif. Dalam kode sumber Chrome terdapat berbagai nilai Sentinel. Penelitian sebelumnya menunjukkan bahwa dengan membocorkan objek TheHole, dapat mencapai eksekusi kode sembarang dalam sandbox Chrome. Tim Google kemudian memperbaiki kerentanan terkait.

Namun, masih ada objek bawaan lain di V8 yang seharusnya tidak bocor ke JavaScript. Artikel ini akan membahas objek Uninitialized Oddball, yang metode bypass-nya pertama kali muncul di Issue1352549. Perlu dicatat bahwa metode tersebut masih dapat digunakan di versi terbaru V8 dan belum diperbaiki.

Metode ini memiliki tingkat universalitas tertentu:

  1. Issue1216437(CVE-2021-30551) untuk pertama kalinya memberikan poc untuk kebocoran internal uninitialized oddball.

  2. Issue1314616(CVE-2022-1486) juga secara langsung membocorkan UninitializedOddball.

  3. Isu 1352549( No CVE ) memiliki dampak yang patut diperhatikan.

Kasus-kasus ini menunjukkan bahwa kita perlu meninjau kembali perangkat lunak yang mungkin terpengaruh oleh PatchGap. Saat ini Skype masih belum memperbaiki kerentanan tersebut.

Sebagian besar objek asli di V8 didefinisikan dalam file v8/src/roots/roots.h, dan mereka berurutan dalam memori. Begitu objek asli ini yang tidak seharusnya bocor terungkap ke JavaScript, eksekusi kode arbitrer dalam sandbox dapat terjadi.

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

Eksklusif Mengungkap Cara Melalui Kebocoran Sentinel Value Menghindari Chrome v8 HardenProtect

Dengan menggunakan metode ini, Anda dapat melewati perlindungan HardenType, sehingga memungkinkan baca/tulis yang relatif sembarangan. Analisis kode JavaScript yang dioptimalkan menunjukkan bahwa saat memeriksa obj.prop, tidak ada verifikasi terhadap Value yang menggunakan obj.prop sebagai key, dan secara langsung menghitung offset sesuai dengan semantik JavaScript dan mendapatkan nilai array, sehingga menyebabkan kebingungan tipe.

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Sentinel Value

Karena uninitialized_oddball diurutkan lebih awal dan lebih primitif dalam memori V8, lebih mudah untuk dipalsukan dibandingkan dengan objek TheHole. Setelah perbaikan terkait TheHole dilakukan, metode ini menjadi pilihan utama untuk menghindari.

Pengungkapan Eksklusif Cara Menghindari Perlindungan HardenProtect Chrome v8 melalui Kebocoran Nilai Sentinel

Disarankan untuk menambahkan pemeriksaan pada map array saat fungsi yang dioptimalkan mengembalikan elemen array, untuk menghindari perhitungan offset secara langsung untuk mengembalikan nilai.

Perlu dicatat bahwa Skype saat ini masih belum memperbaiki kerentanan ini. Pada sistem x86, karena tidak ada kompresi alamat, pembacaan dan penulisan sembarang adalah relatif terhadap seluruh proses. Meskipun Skype telah mengaktifkan ASLR, tetapi karena file yang cukup besar, hacker hanya perlu melakukan pembacaan dan penulisan pada alamat tetap, sehingga ada kemungkinan besar untuk membaca dan menulis konten file Skype. Ini sangat mengurangi kesulitan untuk menyelesaikan rantai pemanfaatan yang lengkap.

Eksklusif mengungkap cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

PatchGap kali ini tidak hanya melibatkan Issue1352549, tetapi juga publikasi metode bypass baru yang secara signifikan mengurangi tingkat kesulitan eksploitasi kerentanan seperti Issue1314616 dan Issue1216437. Hacker hampir tidak perlu melakukan penelitian tambahan untuk sepenuhnya mengeksploitasi kerentanan uninitialized_oddball yang telah bocor sebelumnya.

Pengungkapan Eksklusif Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

Di V8 juga terdapat berbagai nilai Sentinel lainnya, yang mungkin memiliki risiko keamanan serupa. Disarankan untuk mempertimbangkan memasukkan nilai Sentinel seperti %TheHole/uninitialized_Oddball sebagai variabel dalam pengujian fuzz, untuk menemukan potensi eksploitasi lainnya.

Eksklusif Mengungkap Cara Melewati Chrome v8 HardenProtect melalui Kebocoran Sentinel Value

Apakah masalah ini secara resmi dianggap sebagai masalah keamanan atau tidak, mereka akan secara signifikan memperpendek siklus di mana peretas dapat memanfaatkan sepenuhnya. Kita perlu terus memantau dan meneliti bidang ini untuk meningkatkan keamanan perangkat lunak seperti Chrome.

Khusus: Mengungkap cara melewati Chrome v8 HardenProtect melalui kebocoran Sentinel Value

Eksklusif Mengungkap Cara Menghindari Chrome v8 HardenProtect Melalui Kebocoran Nilai Sentinel

Eksklusif mengungkap cara melewati Sentinel Value untuk menghindari Chrome v8 HardenProtect

SENC4.9%
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
  • 3
  • Posting ulang
  • Bagikan
Komentar
0/400
GateUser-00be86fcvip
· 7jam yang lalu
Wah, v8 telah mengekspos celah kecil lagi.
Lihat AsliBalas0
Blockblindvip
· 8jam yang lalu
Bug ini dibiarkan begitu lama tanpa diperbaiki juga luar biasa ya
Lihat AsliBalas0
ImpermanentSagevip
· 8jam yang lalu
Wah, ini lagi celah eksekusi kode.
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)