Ne oldu?
Linux’ta en korkulan açık türü evrensel LPE (universal local privilege escalation). Sunucuda sıradan bir hesabı olan biri, hemen her dağıtımda, hiçbir ayar değiştirmeden root oluyor. Eskiden bunlar seyrek çıkardı. 2016’daki Dirty COW, copy-on-write mekanizmasındaki bir yarış durumunu kullanıyordu. 2022’deki Dirty Pipe, pipe’larda yanlış bırakılan bir bayrak sayesinde salt okunur dosyaların bellekteki kopyasına yazdırıyordu. Arada yaklaşık altı yıl vardı.
2026’da tempo değişti. 29 Nisan’da Copy Fail çıktı, sekiz gün sonra Dirty Frag, Haziran sonunda da Bad Epoll.
Dirty Frag: Aynı desen, başka köşe
Copy Fail’in özü şuydu: splice() ile bir dosyanın sayfa önbelleğindeki (page cache) sayfaları, şifreleme kodunun veriyi “yerinde” işlediği bir alana taşıyabiliyorsun. Kod oraya yazınca, sadece okuma iznin olan bir dosyanın bellekteki kopyasını değiştirmiş oluyorsun.
Araştırmacı Hyunwoo Kim, Copy Fail’den yola çıkıp şunu sordu: Çekirdekte bu deseni tekrarlayan başka yer var mı? İki yer buldu. IPsec’in ESP kodu (CVE-2026-43284) ve AFS’in kullandığı RxRPC (CVE-2026-43500). İkisinde de splice ile pakete eklenen, aslında başkasına ait sayfalar paketin kendi verisi sanılıp yerinde şifresi çözülüyordu. Kim’e göre ESP tarafı Copy Fail ile aynı noktaya yazıyor ama algif_aead modülüne ihtiyaç duymuyor. Yani Copy Fail için önerilen geçici önlemi almış sistemler de açıktı.
İki hata birbirinin eksiğini kapatıyor. ESP yolu, yetkisiz kullanıcının namespace açabilmesini istiyor; Ubuntu bunu bazen AppArmor ile engelliyor. RxRPC modülü çoğu dağıtımda yok ama Ubuntu’da varsayılan olarak yükleniyor. Yarış durumu yok, saf mantık hatası, o yüzden istismar çok güvenilir. Kim, Ubuntu 24.04, RHEL 10.1 ve Fedora 44 gibi dağıtımlarda denediğini yazıyor. Ambargo dışarıdan bozulduğu için yazı, dağıtım bakımcılarının isteğiyle yama hazır olmadan yayımlandı. Ubuntu’ya göre açık konteynerden kaçışa da imkân verebilir.
Bad Epoll: Mythos’un kaçırdığı yarış
epoll, Linux’ta “bu dosya tanımlayıcılarından hangisinde iş var?” diye soran sistem çağrısı. Node.js’in kullandığı libuv dahil, Linux’taki asenkron sunucuların çoğu onun üstüne kurulu. Jaeyoung Chung’un bulduğu Bad Epoll (CVE-2026-46242) burada bir use-after-free: İki kapanma yolu aynı anda çalışınca biri bir nesneyi serbest bırakırken diğeri hâlâ ona yazıyor. Hata 2023’te geldi, 6.4 ve sonrası çekirdekleri etkiliyor.
Yarış penceresi yaklaşık altı komut genişliğinde. Chung pencereyi genişletip çekirdeği çökertmeden tekrar deneyen bir istismar yazdı; Google’ın kernelCTF hedeflerinde yüzde 99’a yakın başarı bildiriyor. İki farkı daha var. epoll kapatılabilecek bir modül değil, tek çare yama. Ayrıca Chrome’un renderer sandbox’ının içinden bile tetiklenebiliyor ve Android’i de etkileyebiliyor.
Başlıktaki Mythos detayı şu: Chung’a göre Anthropic’in Mythos modeli aynı küçük epoll kodunda başka bir yarış hatası buldu (CVE-2026-43074), ama Bad Epoll’u görmedi. Chung’un iki tahmini var: Pencere o kadar dar ki iki iş parçacığının nasıl iç içe geçtiğini kafanda canlandırmak zor. Ve çekirdeğin bellek hatası dedektörü KASAN bu hatada çoğu zaman alarm vermiyor, yani elde güçlü bir kanıt yok. Chung hatayı Şubat’ta bildirmişti, ama doğru yama ancak Nisan sonunda geldi.
Neden şimdi bu kadar çok?
Açık araştırması büyük ölçüde desen tanıma. Bir hata sınıfı bulununca, aynı yanlış varsayımı çekirdeğin başka yerlerinde aramak artık çok daha ucuz. Videonun alıntıladığı bir yorum bunu “birikmiş işin temizlenmesi” diye özetliyor: Bu hatalar yeni değil, yıllardır orada duruyordu; onları koruyan tek şey bakacak insan vaktinin olmamasıydı.
Ne yapmalısın?
- Dağıtımının çekirdek güncellemelerini uygula ve yeniden başlat. Dirty Frag’in iki düzeltmesi de Mayıs’ta kararlı sürümlere girdi (örneğin 6.12.88, 6.18.29, 7.0.6). Bad Epoll için 6.12.95, 6.18.33 ve 7.0.10 ya da dağıtımının güncel paketi gerekiyor.
- Hemen güncelleyemiyorsan Dirty Frag için
esp4,esp6verxrpcmodüllerini engelleyebilirsin. Ama bu IPsec VPN’lerini bozar. Bad Epoll için böyle bir kestirme yok. - Çok kiracılı makinelerde (CI, paylaşımlı hosting, Kubernetes düğümleri) önceliği en üste koy.
Sonra ne oldu?
Ekim’de Chung, Bad Epoll’un kernelCTF’ten 92.337 dolar ödül aldığını ekledi. Mythos’un bulduğu hatayı aynı gün iki bağımsız araştırmacı da bildirmişti. 3 Kasım itibarıyla ne Dirty Frag ne Bad Epoll CISA’nın aktif istismar listesinde. Yarış hatalarının yapay zekâya kapalı olmadığını da gördük: Kasım’da Anthropic, bir iç modelinin Linux’un MPTCP kodundaki bir yarış hatasıyla uzaktan root zinciri kurduğunu açıkladı.
Düşün
- Sunucunda yüklü olan ama hiç kullanmadığın çekirdek modülleri hangileri?
- Bir çekirdek yaması çıktığında makinelerini kaç gün içinde yeniden başlatabiliyorsun?
Videoyu izle
Kaynaklar (14, İngilizce)
- Low Level: The Linux Kernel is Falling Apart. (video) (yeni sekmede açılır)
- Hyunwoo Kim: Dirty Frag, Universal Linux LPE (GitHub) (yeni sekmede açılır)
- Jaeyoung Chung: Bad Epoll, The bug missed by Mythos (GitHub) (yeni sekmede açılır)
- copy.fail: Copy Fail project page (yeni sekmede açılır)
- CVE-2026-43284 (xfrm: esp: avoid in-place decrypt on shared skb frags) (yeni sekmede açılır)
- CVE-2026-43500 (rxrpc: Also unshare DATA/RESPONSE packets when paged frags are present) (yeni sekmede açılır)
- CVE-2026-46242 (eventpoll: fix ep_remove struct eventpoll / struct file UAF) (yeni sekmede açılır)
- Linux kernel git: Bad Epoll fix (commit a6dc643c6931) (yeni sekmede açılır)
- Ubuntu Blog: Dirty Frag Linux vulnerability fixes available (yeni sekmede açılır)
- Ubuntu Security: CVE-2026-46242 (yeni sekmede açılır)
- Anthropic: ANT-2026-CM0TCREP (CVE-2026-43074, epoll use-after-free) (yeni sekmede açılır)
- Max Kellermann: The Dirty Pipe Vulnerability (yeni sekmede açılır)
- CVE-2016-5195 (Dirty COW) (yeni sekmede açılır)
- CISA: Known Exploited Vulnerabilities Catalog (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.