Chrome V8 motoru Sentinel Value güvenlik riskleri derinlik analizi

robot
Abstract generation in progress

Chrome V8 Motorundaki Sentinel Value'nin Güvenlik Etkilerini Derinlemesine İnceleme

Sentinel değeri, algoritmalardaki özel bir değerdir ve genellikle döngü veya özyinelemeli algoritmaların bitiş koşulu olarak kullanılır. Chrome kaynak kodunda çeşitli Sentinel değerleri bulunmaktadır. Daha önce yapılan araştırmalar, TheHole nesnesinin sızdırılması yoluyla Chrome kumanda içinde rastgele kod yürütmenin gerçekleştirilebileceğini göstermiştir. Google ekibi daha sonra ilgili güvenlik açıklarını düzeltmiştir.

Ancak, V8'de JavaScript'e sızmaması gereken başka yerel nesneler de bulunmaktadır. Bu makalede, Issue1352549'da ilk kez ortaya çıkan Uninitialized Oddball nesnesinin etrafından dolanma yöntemi tartışılacaktır. Dikkate değer bir nokta, bu yöntemin şu anda V8'in en son sürümünde hala kullanılabilir olması ve henüz düzeltilmemiş olmasıdır.

Bu yöntem belli bir evrenselliğe sahiptir:

  1. Issue1216437(CVE-2021-30551)'de içsel başlatılmamış oddball'ı sızdıran poc ilk kez sunulmuştur.

  2. Issue1314616(CVE-2022-1486)'de UninitializedOddball doğrudan sızdırılmıştır.

  3. Issue1352549(NoCVE)'in etkisi dikkate değerdir.

Bu durumlar, PatchGap etkisi altında olabilecek yazılımları yeniden gözden geçirmenin gerekli olduğunu göstermektedir. Şu anda Skype bu açığı henüz kapatmamıştır.

V8'deki çoğu yerel nesne, v8/src/roots/roots.h dosyasında tanımlanmıştır ve bellekte bitişik olarak yer alır. Bu sızdırılmaması gereken yerel nesneler JavaScript'e sızdırıldığında, sandbox içinde rastgele kod yürütme gerçekleştirilebilir.

Bu yöntemi doğrulamak için, V8'in yerel fonksiyonunu değiştirebiliriz ve Uninitialized Oddball'ı JavaScript'e sızdırabiliriz. Özellikle, %TheHole() fonksiyonundaki isolate'e göre ofseti değiştirerek Uninitialized Oddball'ı döndürmesini sağlayabiliriz.

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

Bu yöntemi kullanarak HardenType korumasını atlayabilir ve nispeten rastgele okuma/yazma işlemleri gerçekleştirebilirsiniz. Optimize edilmiş JavaScript kodunu analiz ettiğimizde, obj.prop kontrol edilirken obj.prop için anahtar olan Value'nun doğrulanmadığını, doğrudan JavaScript semantiğine göre kaydırma hesaplandığını ve dizi değerinin alındığını görebiliriz; bu da tür karışıklığına neden olmaktadır.

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

uninitialized_oddball'ın V8 belleğinde daha önce sıralanması ve daha ilkel olması nedeniyle, TheHole nesnesinden daha kolay bir şekilde taklit edilebilir. TheHole ile ilgili düzeltmeler yapıldıktan sonra, bu yöntem geçiştirilmek için tercih edilen seçenek haline geldi.

Özel İfşa ile Sentinel Value Kullanarak Chrome v8 HardenProtect'i Aşma

Optimize edilmiş fonksiyonun dizi elemanlarını dönerken, doğrudan hesaplama yaparak değer döndürmekten kaçınmak için dizi haritasının kontrolünü eklemeyi öneririm.

Dikkate değer olan, Skype'ın bu açığı henüz kapatmamış olmasıdır. x86 sistemlerinde adres sıkıştırması olmadığı için, rastgele okuma/yazma işlemi, tüm süreç açısından görece bir durumdadır. Skype ASLR'yi açmış olsa da, dosyanın büyük olması nedeniyle, hacker'ların sabit adreslere okuma/yazma yapması, Skype dosya içeriğine erişme olasılığını oldukça artırmaktadır. Bu, tam bir istismar zincirini tamamlamayı önemli ölçüde kolaylaştırmaktadır.

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

Bu PatchGap sadece Issue1352549'u kapsamakla kalmıyor, aynı zamanda yeni bir bypass yönteminin açıklanması, Issue1314616 ve Issue1216437 gibi açıkların istismar zorluğunu büyük ölçüde azalttı. Hackerlar, daha önce herhangi bir sızdırılan uninitialized_oddball açığını tam olarak istismar etmek için neredeyse ek bir araştırma yapmalarına gerek kalmıyor.

Özel Açıkladı: Sentinel Value Sızdırarak Chrome v8 HardenProtect'i Aşmak

V8'de ayrıca başka birçok Sentinel değeri bulunmaktadır ve bunlar da benzer güvenlik açıklarına sahip olabilir. Fuzz testlerinde %TheHole/uninitialized_Oddball gibi Sentinel değerlerini değişken olarak dikkate almanız önerilir, böylece diğer potansiyel istismarları keşfedebilirsiniz.

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

Bu tür sorunların resmi olarak güvenlik sorunu olarak görülüp görülmemesi önemli değil, bunlar hackerların tam bir istismar gerçekleştirme süresini büyük ölçüde kısaltacaktır. Chrome gibi yazılımların güvenliğini artırmak için bu alana sürekli dikkat etmemiz ve araştırmalar yapmamız gerekiyor.

Özel Açıklama Sentinel Value ile Chrome v8 HardenProtect'i Aşmanın Yolu

Özel ifşa: Chrome v8 HardenProtect'i aşmak için Sentinel Value sızdırılması

Özel ifşa: Sentinel Value ile Chrome v8 HardenProtect'i aşmak

SENC4.79%
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
  • 3
  • Repost
  • Share
Comment
0/400
GateUser-00be86fcvip
· 8h ago
Hey v8 yine küçük bir açık ortaya çıkardı.
View OriginalReply0
Blockblindvip
· 8h ago
Bu hatanın bu kadar uzun süre düzeltilmemesi de gerçekten ilginç.
View OriginalReply0
ImpermanentSagevip
· 8h ago
Aman Tanrım, yine de kod yürütme açığı.
View OriginalReply0
  • Pin
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)