V8 motoru Sentinel Value sızıntısı HardenProtect güvenlik riskini aşma

Chrome V8 motorundaki Sentinel Value sızıntısı nedeniyle oluşan güvenlik riski

Sentinel değeri, algoritmadaki özel bir değerdir ve genellikle döngü veya özyinelemeli algoritmaların sonlandırma koşulu olarak kullanılır. Chrome kaynak kodunda birden fazla Sentinel değeri bulunmaktadır ve bu nesnelerin bazıları JavaScript ortamına sızmamalıdır. Bu yazıda, Chrome V8 motorunun HardenProtect mekanizmasını aşmak için Uninitialized Oddball nesnesinin sızdırılmasını inceleyeceğiz.

V8'de Sentinel Değeri

V8'in çoğu yerel nesnesi v8/src/roots/roots.h dosyasında tanımlanmıştır ve bu nesneler bellekte bitişik olarak sıralanır. Bu yerel nesneler JavaScript'e ifşa edilmemesi gerektiği bir durumda sızdırılırsa, sandbox içinde herhangi bir kodun yürütülmesine neden olabilir.

V8'in native fonksiyonlarını değiştirerek Uninitialized Oddball'ı JavaScript'e sızdırabiliriz. Örneğin, %TheHole() fonksiyonunun ofsetini değiştirerek Uninitialized Oddball nesnesini döndürmesini sağlayabiliriz.

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

HardenType korumasını atlatma

Sızdırılmış Uninitialized Oddball nesnelerini kullanarak, aşağıdaki kod ile göreli olarak rastgele okuma gerçekleştirilebilir:

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

let arr = [1.1, 2.2, 3.3]; let uninitialized_oddball = %TheHole();

for (let i = 0; i < 100000; i++) { read(arr, 0);
}

%OptimizeFunctionOnNextCall(read);

let result = read(uninitialized_oddball, 0x12345); %DebugPrint(sonuç);

Optimize edilmiş read fonksiyonunun derleme kodu, dizi kaydırmasını hesaplarken obj.prop'un değer türünü kontrol etmediğini, doğrudan JavaScript anlamına göre hesapladığını ve böylece tür karışıklığına neden olduğunu, her türlü okumanın gerçekleştirilmesine yol açtığını gösteriyor.

Özel İfşa Sentinel Value ile Chrome v8 HardenProtect'i Aşmanın Yolu

Düzeltme önerisi, optimize edilmiş fonksiyonun dizi elemanlarını döndürürken, dizinin haritasını kontrol etmeyi eklemek ve doğrudan hesaplama yaparak dönen değeri önlemek.

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

PatchGap risk uyarısı

Bu güvenlik açığı, bazı eski V8 motorunu kullanan yazılımlarda (, Skype ) gibi, hâlâ düzeltilmemiş durumda. x86 platformunda, adres sıkıştırması olmadığı için, rastgele okuma yazma doğrudan tüm işlemlerle ilişkilidir.

Bu yeni aşma yönteminin açıklanması, ilgili açıkların kullanılmasını kolaylaştırdı. Hackerlar, sızdırılan Uninitialized Oddball açığının tam olarak kullanılmasını sağlamak için neredeyse hiç ek araştırma yapmak zorunda kalmadan bunu tamamlayabiliyorlar.

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

Özet

V8'de başka Sentinel değeri de bulunmaktadır, bu da benzer güvenlik sorunlarına neden olabilir. Daha fazla araştırma yapılması önerilir:

  1. Diğer Uninitialized Oddball sızıntıları da V8'in RCE'sini gerçekleştirebilir mi?
  2. Bu tür sorunların resmi olarak güvenlik açığı olarak listelenip listelenmeyeceği
  3. Fuzzer testlerinde Sentinel değerinin bir değişken olarak dahil edilmesi gerekiyor mu?

Her ne olursa olsun, bu tür sorunlar, hackerların tam istismar süresini önemli ölçüde kısaltacaktır, bu nedenle büyük önem taşımaktadır.

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

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

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

Özel İfşa: Sentinel Değerini Sızdırarak Chrome v8 HardenProtect'i Aşmak

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

SENC4.67%
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
GateUser-bd883c58vip
· 08-04 04:05
Bu açık, biraz korkutucu bir şekilde sert.
View OriginalReply0
SerumDegenvip
· 08-02 17:19
gm frenler... v8'de başka bir alpha sızıntısı tespit edildi, hepimiz rekt'iz
View OriginalReply0
ThatsNotARugPullvip
· 08-02 17:19
Bu Chrome tavasını taşı, herkes delikleri sana gösterdi.
View OriginalReply0
RektButStillHerevip
· 08-02 17:09
Sandbox koruması neden bu kadar kötü?
View OriginalReply0
CryptoNomicsvip
· 08-02 17:01
*sigh* bir başka istismar, chrome'un güvenlik modeline dair regresyon analizimin istatistiksel olarak anlamlı olduğunu kanıtlıyor... ama kimse dinlemedi
View OriginalReply0
MetaverseHobovip
· 08-02 16:58
Bu açık da çok can sıkıcı değil mi, direkt Aya doğru.
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)