Chrome V8 motoru Sentinel Değeri sızıntısı araştırması ve güvenlik risk analizi

Chrome V8 motorundaki Sentinel Value sızıntısının neden olduğu güvenlik risklerini araştırma

Ön söz

Sentinel değeri, algoritmalarda genellikle döngü veya özyinelemeli algoritmaların sonlanma koşulu olarak kullanılan özel bir değerdir. Chrome kaynak kodunda bu özel değer yaygın olarak kullanılmaktadır. Yakın zamanda bazı araştırmacılar, TheHole nesnesinin sızdırılması yoluyla CVE-2021-38003 ve CVE-2022-1364 için sandbox içinde rastgele kod çalıştırma gerçekleştirdi. Google ekibi daha sonra bu iki açığı hızla düzeltti.

Ancak, TheHole nesnesi dışında, V8'de JavaScript'e sızdırılmaması gereken diğer yerel nesneler de bulunmaktadır. Bu makale, Uninitialized Oddball nesnesine odaklanacak ve V8'in HardenProtect mekanizmasını atlatmanın yollarını tanıtacaktır. Dikkat edilmesi gereken bir nokta, bu atlatma yönteminin şu anda en son V8 sürümünde hala geçerli olması ve henüz düzeltilmemiş olmasıdır.

V8'de Sentinel Değeri

V8'in çoğu yerel nesnesi v8/src/roots/roots.h dosyasında tanımlanmıştır, bu nesneler bellekte birbirinin ardına sıralanmıştır. Eğer bu JavaScript'e sızdırılmaması gereken yerel nesneler sızdırılırsa, sandbox içinde herhangi bir kodun çalıştırılmasına neden olabilir.

Bunu doğrulamak için, V8'in yerel fonksiyonunu değiştirerek Uninitialized Oddball'ı JavaScript'e sızdırabiliriz. Spesifik olarak, %TheHole() fonksiyonundaki isolate'a göre olan kaydırmayı değiştirerek Uninitialized Oddball'ı döndürebiliriz.

Özel Açıklama, Sentinel Value Sızıntısı ile Chrome v8 HardenProtect'i Aşma

HardenType korumasını aşma

Uninitialized Oddball nesnelerini kullanarak nispeten rastgele okuma/yazma işlemleri gerçekleştirilebilir. Optimize edilmiş JavaScript kodunda, read fonksiyonu obj.prop anahtarındaki değeri kontrol etmez, bunun yerine doğrudan JavaScript anlamına göre ofset hesaplar ve dizinin değerini alır. Bu, hesaplama sırasında tür karmaşasına yol açarak rastgele okuma yapılmasına neden olur.

Özel keşif: Sentinel Value sızıntısı ile Chrome v8 HardenProtect'i aşma

Herhangi bir yazma işlemi için, Issue1352549'daki yapı yöntemini inceleyebilirsiniz. Önerilen düzeltme çözümü, optimize edilmiş fonksiyonun dizi elemanlarını döndürürken, dizinin haritasını kontrol etmeyi eklemektir; böylece doğrudan kaydırma ile dizi değerlerini hesaplamaktan kaçınılır.

Özel İfşa: Sentinel Value ile Chrome v8 HardenProtect'i Aşmak

Özel ifşa, Sentinel Value ile Chrome v8 HardenProtect'i aşma

Özel Açıklama: Sentinel Value sızıntısı ile Chrome v8 HardenProtect'i nasıl aşabilirsiniz

PatchGap uyarısı

Issue1352549'u analiz ettikten sonra, bazı yazılımların PatchGap sorunu yaşayabileceğini fark ettik. Dikkate değer bir nokta, şu ana kadar Skype'ın bu açığı henüz düzeltmemiş olduğudur. x86 ortamında, rasgele okuma/yazma uygulaması farklılık gösterecektir, çünkü adres sıkıştırması yoktur ve doğrudan tüm süreçle ilgili olarak işlem yapabilir.

Özel ifşa Sentinel Value ile Chrome v8 HardenProtect'i aşmanın yolları

Bu seferki PatchGap sorunu yalnızca Issue1352549 ile ilgili değil, yeni bir geçiş yönteminin açıklanması, Issue1314616 ve Issue1216437 gibi açıkların istismarını büyük ölçüde kolaylaştırdı. Hackerlar, daha önceki uninitialized_oddball açığına yönelik tam istismarları gerçekleştirmek için neredeyse hiç araştırma maliyeti olmadan hareket edebilirler.

Özel Açıklama: Sentinel Value ile Chrome v8 HardenProtect'i Aşmak

Özel Açıklama Sentinel Value Sızdırarak Chrome v8 HardenProtect'i Aşma

Özet

Bu makale, uninitialized_Oddball'ın Sentinel value içindeki sızıntısı yoluyla rastgele okuma ilkesinin nasıl gerçekleştirileceğini kısaca tartışmaktadır. V8'de benzer güvenlik sorunlarına yol açabilecek birçok başka Sentinel value da bulunmaktadır. Bu bize şu dersleri veriyor:

  1. Diğer uninitialized_Oddball sızıntıları da V8'in uzaktan kod yürütmesini kolayca sağlayabilir mi?

  2. Bu tür sorunların resmi bir güvenlik sorunu olarak kabul edilip edilmeyeceği konusunda hala tartışmalar var.

  3. %TheHole/uninitialized_Oddball gibi Sentinel değerlerini fuzzer içinde değişken olarak eklemeyi düşünün, böylece diğer ilkelere yönelik istismarları keşfedebilirsiniz.

Bu tür sorunların resmi olarak güvenlik sorunu olarak görülüp görülmemesi önemli değil, bu sorunlar hackerların tam fayda sağlama süresini önemli ölçüde kısaltır.

Özel Keşif: Sentinel Value kullanarak Chrome v8 HardenProtect'i aşma

SENC2.21%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 6
  • Share
Comment
0/400
FUD_Vaccinatedvip
· 07-26 03:20
Yine siyah Google, bu delik çok sık oldu 8
View OriginalReply0
MetaverseLandlordvip
· 07-24 11:22
Aman Tanrım, başkalarının tarayıcı açıkları bu kadar gelişmiş mi?
View OriginalReply0
SerNgmivip
· 07-23 05:34
Gerçekten v8 beni başımda ağrı yapıyor...
View OriginalReply0
GateUser-a606bf0cvip
· 07-23 05:34
Hmm? Yine mi chrome bir şeyler yapıyor?
View OriginalReply0
StablecoinAnxietyvip
· 07-23 05:15
Tarayıcı güvenlik açığı ne kadar heyecan verici!
View OriginalReply0
PonziDetectorvip
· 07-23 05:11
Vay be, V8 bu açık oldukça büyük oynuyor.
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)