Chrome V8 motoru Sentinel Value sızıntı açığı analizi ve savunması

robot
Abstract generation in progress

Sentinel Değer Sızdırma Chrome V8 HardenProtect'i Aşmanın Teknik Analizi

Sentinel value, algoritmalar içinde özel bir değerdir ve genellikle döngü veya özyinelemeli algoritmalarda bir sonlandırma koşulu olarak bulunur. Chrome kaynak kodunda birçok Sentinel value bulunmaktadır. Son zamanlarda yapılan araştırmalar, TheHole nesnesinin sızdırılması yoluyla CVE-2021-38003 ve CVE-2022-1364 için kumanda içindeki rastgele kod yürütmenin gerçekleştirilebileceğini göstermiştir. Google ekibi daha sonra bu iki sahada bulunan güvenlik açığı için güncellemeler yaptı.

TheHole nesnesi dışında, V8'de JavaScript'e sızdırılmaması gereken diğer yerel nesneler de bulunmaktadır. Bu makalede, en son V8 sürümünde hala kullanılabilen Uninitialized Oddball nesnesinin bir sızdırma yöntemi tartışılmaktadır.

V8'in çoğu yerel nesnesi v8/src/roots/roots.h dosyasında tanımlanmıştır, bu nesneler bellekte yan yana yerleştirilmiştir. Eğer sızdırılmaması gereken yerel nesneler JavaScript'e sızdırılırsa, sandbox içinde herhangi bir kodun çalıştırılması mümkün olabilir.

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

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

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

Uninitialized Oddball kullanarak neredeyse her türlü okuma/yazma gerçekleştirilebilir. Optimize edilmiş JavaScript read fonksiyonu, JavaScript anlamına göre kaydırmayı doğrudan hesaplar, dizinin değerini elde eder ve bu da tür karışıklığına yol açarak her türlü okuma sağlar.

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

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

Özel Keşif: Sentinel Value'yi Sızdırarak Chrome v8 HardenProtect'i Aşmak

Önerilen çözüm, optimize edilmiş işlevin dizi elemanlarını döndürürken dizi haritasının kontrolünü eklemek ve dizi değerlerini doğrudan hesaplayarak döndürmekten kaçınmaktır.

Dikkat edilmesi gereken bir nokta, bu yönteminin yalnızca Chrome'a değil, V8 motorunu kullanan diğer yazılımlara da etki edebileceğidir. Örneğin, Skype şu anda bu açığı henüz kapatmamıştır. x86 altında, adres sıkıştırması olmadığı için, rastgele okuma ve yazma doğrudan tüm süreçle ilişkilidir.

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

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

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

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

Genel olarak, uninitialized_Oddball'ın Sentinel value'sundaki sızıntı yoluyla her türlü okuma primitive'ine ulaşılabilir. V8'de benzer sorunlara yol açabilecek başka Sentinel value'lar da bulunmaktadır. Bu Sentinel value'ların fuzzer'a değişken olarak eklenmesi, daha fazla potansiyel sömürü primitive'ini ortaya çıkarmak için önerilmektedir. Resmi olarak güvenlik sorunu olarak kabul edilip edilmemesine bakılmaksızın, bu tür sorunlar, hacklerin tam sömürü sağlama süresini büyük ölçüde kısaltacaktır.

SENC-3.48%
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
  • 4
  • Share
Comment
0/400
TommyTeachervip
· 07-20 16:35
Gerçekten biraz tehlikeli, değil mi?
View OriginalReply0
BrokeBeansvip
· 07-20 16:22
Bütün gün delik açmayı düşünmek yerine, elinle soruları çözmek daha keyifli değil mi?
View OriginalReply0
GateUser-ccc36bc5vip
· 07-20 16:13
v8 koruma bu kadar mı kötü?
View OriginalReply0
StablecoinGuardianvip
· 07-20 16:09
Oh oh V8 güvenliğinde yine bir sorun var.
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)