Chrome V8 motorundaki yeni güvenlik açığı: Uninitialized Oddball sızıntısı ile kum havuzunun aşılması

robot
Abstract generation in progress

Chrome V8 HardenProtect'ı atlatmak için Sentinel Değerinin sızdırılmasıyla ilgili içgörü

Ön Söz

Sentinel değeri, algoritmalarda genellikle döngü veya özyinelemeli algoritmalarda durdurma koşulu olarak kullanılan özel bir değerdir. Chrome kaynak kodunda bu tür değerler yaygın olarak kullanılmaktadır. Son zamanlarda güvenlik araştırmacıları, TheHole nesnesinin sızdırılması yoluyla Chrome kumanda alanında rastgele kod yürütme gerçekleştirilebileceğini keşfettiler. Google ekibi ardından bu iki sıfırdan keşfedilen açığı hızlı bir şekilde düzeltti.

Ancak, V8'de JavaScript'e sızdırılmaması gereken başka yerel nesneler de bulunmaktadır. Bu makale, yeni bir nesne olan: Uninitialized Oddball'ı tartışacaktır. Bu geçiş yöntemi ilk olarak Project0 üyesinin gönderdiği bir sorunla ortaya çıkmıştı ve şu anda V8'in en son versiyonunda kullanılmaya devam etmektedir.

Dikkate değer olan, bu yöntemin oldukça güçlü bir genel kullanıma sahip olduğudur:

  1. CVE-2021-30551'deki ilk POC, içsel başlatılmamış garip bir nesnenin sızdırılmasıdır.

  2. CVE-2022-1486'nın POC'si ayrıca UninitializedOddball'ı doğrudan ifşa etti.

  3. Atanmamış bir CVE'nin Sorunu da bu yöntemi kullandı.

Bu örnekler, sorunun önemini yeterince açıklamaktadır ve etkilenebilecek yazılımları yeniden gözden geçirmeye değer.

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

V8'de Sentinel Değeri

V8'in çoğu yerel nesnesi v8/src/roots/roots.h dosyasında tanımlanmıştır ve bellek içinde ardışık olarak yer almaktadır. Bu sızdırılmaması gereken yerel nesneler JavaScript'e sızdığında, sandbox içinde herhangi bir kodun çalıştırılmasına neden olabilir.

V8'in yerel fonksiyonlarını değiştirerek Uninitialized Oddball'ı JavaScript'e sızdırabiliriz. Bunun için %TheHole() fonksiyonundaki isolate ile ilgili kaydırmayı değiştirerek Uninitialized Oddball'ı döndürmesini sağlarız.

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

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

HardenType'ı Atlama

Uninitialized Oddball kullanarak göreceli olarak rastgele okuma/yazma gerçekleştirilebilir. Anahtar, optimize edilmiş read fonksiyonunun yalnızca obj'nin prop özelliğini kontrol etmesidir, ancak obj.prop anahtarı olarak value'yu kontrol etmemesidir. Bu, hesaplama sırasında tür karışıklığına neden olarak rastgele okuma gerçekleştirilmesini sağlar.

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

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

Özel Açıklama Chrome v8 HardenProtect'i geçmek için Sentinel Value'yi sızdırma

x86 mimarisinde, adres sıkıştırmasının olmaması nedeniyle, rastgele okuma ve yazma işlemleri tüm süreçle ilişkilidir. Adres sıkıştırmasının sağladığı kolaylıklar eksik olsa da, bazı büyük yazılım dosyalarının boyutları nedeniyle, hedef içeriğe okuma ve yazma işlemleri hala yüksek bir olasılıkla gerçekleşebilir.

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

PatchGap Uyarısı

Bu PatchGap sadece Issue1352549'u değil, aynı zamanda Issue1314616 ve Issue1216437 gibi birçok güvenlik açığını da kapsamaktadır. Yeni bir geçiş yöntemi kamuya açıklandıktan sonra, bu güvenlik açıklarının istismar edilmesi önemli ölçüde kolaylaştı. Hackerlar neredeyse ek bir araştırmaya ihtiyaç duymadan tam istismar zincirini tamamlayabilir.

Özel ifşa: Sentinel Value aracılığıyla Chrome v8 HardenProtect'i aşma

Özet

V8'de benzer sorunlara sahip olabilecek birçok başka Sentinel değeri de var. Bu bize bazı ipuçları veriyor:

  1. Diğer uninitialized_Oddball sızıntıları V8 RCE'yi de gerçekleştirebilir mi?

  2. Bu tür sorunlar resmi olarak güvenlik sorunu olarak mı değerlendirilmelidir?

  3. Fuzzer testlerinde Sentinel değerinin bir değişken olarak eklenmesi gerekir mi?

Her halükarda, bu tür sorunlar, hackerların tam istismar süresini önemli ölçüde kısaltacaktır, bu da bizim için büyük bir önem taşıyor.

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

SENC2.39%
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
  • Repost
  • Share
Comment
0/400
ContractTestervip
· 08-15 05:19
Eski açıklar yeni sorunlar yeniden ortaya çıktı.
View OriginalReply0
BlockchainWorkervip
· 08-13 17:55
v8 bu güvenlik açığı çok ciddi.
View OriginalReply0
SocialFiQueenvip
· 08-12 12:23
Ciddi sorunlara dikkat edilmesi gerekiyor.
View OriginalReply0
CryptoFortuneTellervip
· 08-12 12:15
Açıklar henüz düzeltilmedi.
View OriginalReply0
GamefiHarvestervip
· 08-12 12:12
V8 yine ortaya çıktı
View OriginalReply0
CryptoSurvivorvip
· 08-12 12:11
Sandbox tekrar aşıldı
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)