deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Altı gün, üç hata: XBOW'un yapay zekâ ile kurduğu zincir, Google'ın ilk 250.000 dolarlık Chrome ödülünü aldı

XBOW, bir V8 Maglev hatası, animasyonlu WebP çözücüsündeki bir kusur ve Crashpad'deki bir bellek hatasını zincirleyerek Chrome'un renderer sandbox'ından kaçtı ve Google'ın ilk 250.000 dolarlık tam zincir ödülünü kazandı. Yapay zekâ ajanları bunu altı günde geliştirdi.

Altı gün, üç hata: XBOW'un yapay zekâ ile kurduğu zincir, Google'ın ilk 250.000 dolarlık Chrome ödülünü aldı

Google, Nisan 2026'da yürürlüğe giren Chrome Vulnerability Reward Program kuralları kapsamındaki ilk 250.000 dolarlık tam zincir ödülünü ödedi ve kazanan girdi, güvenlik firması XBOW'un büyük ölçüde yapay zekâ ajanlarının emeğiyle altı günde oluşturduğu üç hatalı bir exploit zinciri. Hacker News'in ana sayfasına çıkan XBOW'un teknik yazısına göre zincir, bir sekmedeki sıradan JavaScript ile başlıyor ve renderer sandbox'ı dışında çalışan kodla sona eriyor — bunu, imzalı bir Chrome Beta sürümünde çalışan bir sayfanın Hesap Makinesi uygulamasını başlatmasıyla gösterdiler.

Chrome bir sekmeyi iki sınırla korur: JavaScript heap bozulmasını işaretçilerin offset olarak saklandığı ayrılmış 4 GiB'lik bölgenin içinde tutan V8'in süreç içi sandbox'ı ve renderer sürecini çevreleyen işletim sistemi sandbox'ı. XBOW'un zinciri ikisini de, her adımda bir hatayla aştı.

V8 içindeki paylaşımlı, değişken bir sayı

İlk hata, V8'in orta kademe optimizing derleyicisi Maglev'de yer alıyor ve deoptimizasyona dayanıyor. Optimize edilmiş kod, üzerinde çalıştığı değerlere dair varsayımlarla çalışır; biri geçersiz olduğunda V8, o ana dek yalnızca derleyici içi değerler olarak var olan alanlar dahil sıradan JavaScript nesnelerini yeniden oluşturur. Double tutan bir alanın bir HeapNumber olarak somutlaştırılması gerekir ve işler tam orada ters gitti.

XBOW, savunmasız Maglev yolunun böyle bir değer için tek bir old-space HeapNumber ayırdığını ve nesnenin kendisini deoptimizasyon literal dizisine — derleyicinin değişmez olarak ele aldığı sabitler havuzuna — yerleştirdiğini buldu. Genel somutlaştırıcı ardından o nesnenin yalnızca sayısal değerini değil, birebir kendisini her yeniden yapılan sahibine kopyalıyordu. İç içe aktivasyonlarla V8, gizlice tek bir değişken HeapNumber'ı paylaşan double alanlı farklı JavaScript nesneleri verebiliyordu; bu da V8'in kaynak kodunda başka yerde belirtilen bir değişmeze aykırı: HeapNumber referansları yalnızca değişmez değerler için vardır.

Exploit bu uyuşmazlığı Array.prototype.at()'e yöneltti. Derleyicinin "aynı" sabit üzerine yaptığı bir gözlem sınırlar içi erişimi onaylarken, ikincisi gerçek yükleme offset'ini sağladı. Paylaşılan kutu değişken olduğundan, bir nesnenin alanını değiştirmek offset'i kaydırıyor ama daha önceki sınır akıl yürütmeyi geçersiz kılmıyordu. Üç optimize yükleme fonksiyonu, yakındaki V8 işaretçilerini ifşa etmek, packed-double dizisinin yerleşimini kurtarmak ve sahte bir dizi oluşturmak için yeterliydi; o sahtecilik üzerinden gerçek bir Uint8Array'in metadata'sını yeniden yazmak ise dizinli erişimi 4 GiB'lik kafesin tamamına yaydı. Adresleri sabit tutmak için exploit referansları V8'in large-object space'inde park etti ve çöp toplayıcının bunları güncel tutmasına izin verdi.

V8'nin düzeltmesi literal nesnesi özel durumunu kaldırıyor. Sanal HeapNumber'lar artık sıradan yakalanan nesne somutlaştırma yolunu izliyor ve Maglev açıkça tekilleştirilmelerini engelliyor; böylece her deoptimizasyon taze bir kutu somutlaştırıyor.

İki hata daha, iki sınır daha

İkinci hata, animasyonlu WebP çözücüsündeydi; önbelleğe alınmış geometriyi, o geometri hesaplandıktan sonra değişmiş görüntü baytlarıyla karıştırarak kafes dışında saldırganın seçtiği tek bir native yazma imkânı verdi. Dikkat çekici olan, XBOW'un V8 sandbox'ının kendi mekanizmasına saldırmaması; bunun yerine sandbox'ın bilerek zorunlu kılmadığı bir özelliği sömürmesi — Blink rendering motorunun garanti edilmiş olarak ele aldığı bir özellik.

Üçüncü hata Chrome'un çökme rapor işleyicisi Crashpad'deydi. Crashpad, donmuş bir renderer'ın belleğinin altında kayamayacağını varsayıyor; bu nedenle o renderer'dan bir okuma başarısız olduğunda bile gözleme güvenmeye devam ediyordu. Oradaki bir taşma, exploite sandbox'sız çökme işleyicisinde kod çalıştırma — ve böylece ana makinede sandbox'sız kod — verdi.

Altı gün ve yaklaşık 40.000 dolarlık işlem gücü

XBOW kampanyayı 2 Ağustos Pazar'dan 7 Ağustos Cuma'ya kadar yürüttü ve çabayı, tek bir ajandan uçtan uca bir exploit istemek yerine paralel kulvarlara böldü — geniş güvenlik açığı arama, V8 bellek bozulması, V8 sandbox kaçışı, renderer sandbox kaçışı ve entegrasyon. OpenAI'nin gpt-5.6-sol modelini çalıştıran ajanlar kaynak kodunda arama yaptı, hipotezleri test etti, kavram kanıtları ve exploit aşamaları oluşturdu; XBOW araştırmacıları ise hedefleri seçti, bağlam sağladı, sonuçlara meydan okudu ve hangi bileşenlerin birleştirileceğine karar verdi. Her aşama temiz bir arayüz açığa çıkarıyordu ve yedek rotaları vardı; böylece bir bileşen, geri kalanı yeniden kurmadan değiştirilebiliyordu. Arşivlenmiş Codex kayıtlarından yeniden yapılan hesaba göre kampanya, yaklaşık 40.000 dolar API ücretine mal oldu — karşılığında 250.000 dolarlık ödül.

Ölçek için XBOW, yapay zekâ desteğinden önce dört kişilik bir ekibin Chrome tam zincirini yaklaşık altı ila dokuz ayda geliştirdiğini, kendi ilk girişimlerinin ise iki ay sürdüğünü söylüyor. Firma, zaman çizelgesini Ekim sonu'da Unprompted adlı bir etkinlikte ayrıntılı olarak anlatmayı planlıyor.

Neden önemli

  • Yeni tam zincir kuralları altındaki ilk ödeme, eksiksiz bir Chrome exploit'inin piyasa fiyatı için kamuya açık bir kıstas oluşturuyor.
  • Ekonomi değişti: altı gün ve yaklaşık 40.000 dolarlık işlem gücü, daha önce küçük bir ekibin yılıın büyük kısmını alan işi üretti.
  • Zincir aynı zamanda sandbox varsayımları üzerine bir ders. İki sandbox da tasarımlarına sadık kaldı, ama çevrelerindeki kod — zorunlu kılınmamış bir V8 özelliğine güvenen Blink, donmuş bir renderer'a güvenen Crashpad — geçişleri sağladı.
  • Ajanlar uzman exploit geliştirmeyi aylardan günlere sıkıştırabiliyorsa, insan hızlı araştırmaya göre kalibre edilmiş yama ve ifşa süreleri artık yeterli olmayabilir.
  • #chrome
  • #security
  • #v8
  • #bug-bounty
  • #ai-agents

İlgili yazılar