Patch to Root CauseBölüm 1 / 2
  1. Bölüm 1CVE-2025-24201: Web İçeriğinin Gereksiz Bir GPU Durumuna Ulaşması
  2. Bölüm 2CVE-2025-32463: Kullanıcı Kontrollü Chroot Dizininden Root Olarak Kod Yükleme

60 saniyede CVE-2025-24201

Safari, web sitelerinin JavaScript ve HTML kodlarını izole bir Web Content süreci içinde çalıştırır. CVE-2025-24201 zafiyeti; Apple’ın açıklamasına göre zararlı bir web içeriğinin bu sandbox sınırını aşmasına (sandbox escape) yol açabilecek bir sınır dışı yazma (out-of-bounds write) hatasıydı. WebKit yaması, bu süreçten gereksiz bir yeteneği kaldırdı: web sayfası tarafından kontrol edilen bir WebGL bağlamı grafik katmanından PRIMITIVE_RESTART_FIXED_INDEX özelliğini açıp kapatmasını isteyebiliyor ve WebKit bu isteği doğrudan ANGLE kütüphanesine iletiyordu.

Saldırı yolu (attack path) şu şekilde gerçekleşti:

Zararlı web içeriği
  -> WebGL durum değişikliği isteği gönderir
  -> GraphicsContextGLANGLE primitive-restart açma/kapama isteğini iletir
  -> Web Content süreci içinden ANGLE ve GPU grafik durumu manipüle edilir
  -> Apple zafiyeti sınır dışı yazma ve sandbox kaçışı ile ilişkilendirir

Apple’ın güvenlik bülteni zafiyet sınıfını ve etkisini doğrularken, açık kaynak WebKit yaması kaldırılan yeteneği doğrulamaktadır. Bu analiz, kamuya açık kod ve bülten verilerini birleştirerek savunmasız durum geçişini açıklar.

Web Content, WebGL, ANGLE ve Primitive Restart nedir?

Web Content süreci, güvenilmeyen internet içeriklerini sandbox kısıtlamaları altında ayrıştırır ve çalıştırır. WebGL, bu içeriğe tarayıcı denetimli bir 3D grafik API’si sunar. WebKit’in GraphicsContextGLANGLE bileşeni ise ANGLE grafik çeviri katmanına ve nihayetinde donanımsal GPU durumuna uzanan köprünün parçasıdır.

Primitive restart, özel bir indeks değerinin bir çizim çağrısını sonlandırıp yenisini başlatmasını sağlayan bir geometri render özelliğidir. WebGL 2 bu özelliği varsayılan olarak açık tutarken, WebGL 1 kapalı bırakır. WebKit commit açıklaması, Web Content sürecinin bu durumu açıp kapatması için hiçbir meşru gerekçe bulunmadığını belirtir.

Ne oldu?

Apple’ın Safari 18.3.1 güvenlik bülteni, iOS 17.2’de engellenen son derece karmaşık hedefli bir saldırının tamamlayıcı yaması olarak bu düzeltmeyi yayınladı.

WebKit commit 7d784721e4, GraphicsContextGLANGLE::enable() ve disable() metotlarını güncelledi. Her iki metot da artık PRIMITIVE_RESTART_FIXED_INDEX isteğini yakalamakta ve ANGLE’ı çağırmadan hemen geri dönmektedir (return); geçersiz bağlamlarda ise grafik durumunu değiştirmek yerine InvalidOperation kaydetmektedir. Yama, parametreleri karmaşık kontrollerden geçirmek yerine gereksiz durum değiştirme yolunu doğrudan iptal etmiştir.

Evidence matrix

SoruNeyi kontrol ettimGüvenSınır
Hangi sürümler etkilendi?Safari 18.3.1 öncesi ve ilgili Apple işletim sistemi sürümlerini teyit ettim.YüksekCihaza özgü maruz kalma yama geçmişine bağlıdır.
Yolu ne tetikliyor?Zararlı web içeriğinin WebGL üzerinden primitive restart durumunu değiştirmeye çalışması.YüksekÖzel bir kullanıcı etkileşimi gerekmez.
Yama ne yaptı?Gereksiz PRIMITIVE_RESTART_FIXED_INDEX geçişini ANGLE’a iletmeden erken return ile sonlandırdı.YüksekYalnızca 12 satırlık bir kod değişikliğidir.
Güvenlik etkisi nedir?Safari Web Content sandbox’ından kaçış (sandbox escape).YüksekVahşi doğada hedefli saldırılarda kullanıldığı Apple tarafından belirtilmiştir.

Sonuç

Safari sürümünüzü 18.3.1 veya üzerine güncelleyin.

Bu zafiyet savunmacı yazılım mimarisinde kritik bir prensibi hatırlatır: En güvenli kod, hiç var olmayan koddur. Saldırganın kontrol edebileceği gereksiz durum geçişlerini ve API yeteneklerini en baştan budamak, onları daha karmaşık filtrelerle temizlemeye çalışmaktan her zaman daha dayanıklı bir savunma sağlar.

Kaynaklar ve sınırlar

Bu analiz için kullanılan kanıtlar

Kontrol edilen kaynaklar24 Ağustos 2026

Sürüm ve sömürü durumu değişebilir; üretici kayıtlarını takip edin.

İnceleme DurumuYazar incelemesi tamamlandı

Yazar teknik incelemeyi tamamladı. Bu etiket tek başına laboratuvar yeniden üretimi iddiası taşımaz.

◈ Bu Araştırmayı Kaynak GösterBibTeX · Markdown

Bu araştırma notunu, CVE analizini veya bulgularını akademik çalışmalarınızda ya da güvenlik bültenlerinizde atıfta bulunmak için kopyalayabilirsiniz:

@misc{jankesec_apple_webkit_primitive_restart_2026,
  author       = {Sevban D\"{o}nmez},
  title        = {CVE-2025-24201: Web İçeriğinin Gereksiz Bir GPU Durumuna Ulaşması},
  year         = {2026},
  howpublished = {\url{https://jankesec.com/tr/arastirma/apple-webkit-primitive-restart/}},
  note         = {jankesec technical security research (CVE-2025-24201)}
}