Bad Epoll (CVE-2026-46242)
(github.com/J-jaeyoung)- Linux çekirdeğinin
epollalt sistemindeki yarış durumu kaynaklı UAF zafiyeti, ayrıcalıksız bir sürecin yalnızca Linux masaüstü ve sunucularda değil Android cihazlarda da root yetkisi elde etmesine yol açabiliyor - Bu zafiyet, Jaeyoung Chung tarafından Google kernelCTF'ye 0-day olarak gönderilip raporlandı ve istismar edildi; kernelCTF, Linux çekirdek istismarları için $71,337+ ödül veriyor
- Anthropic'in yapay zekası Mythos, aynı
epollkodunda farklı bir yarış durumu hatası olan CVE-2026-43074'ü buldu ancak Bad Epoll'ü kaçırdı epoll, işletim sistemi, ağ servisleri ve tarayıcıların bağımlı olduğu bir çekirdek çekirdek işlevi olduğundan devre dışı bırakılamıyor ve basit bir geçici çözüm olmadan tek çözüm yamayı uygulamak- Zafiyet, 2023-04-08 tarihli
58c9b016e128commit'i ile eklendi ve 2026-04-24 tarihlia6dc643c6931commit'i ile düzeltildi; v6.4 ve üzeri tabanlı çekirdeklerde, düzeltme backport'u olmayan dağıtımlar etkilenebilir
Bad Epoll'ün niteliği ve ciddiyeti
- Bad Epoll, Linux çekirdeğinin
epollalt sistemindeki yarış durumu temelli bir use-after-free (UAF) zafiyetidir ve tanımlayıcısı CVE-2026-46242'dir - Ayrıcalıksız bir süreç root yetkisi elde edebilir; bu yalnızca Linux masaüstü ve sunucuları değil Android cihazları da etkileyebilir
- Google kernelCTF'ye 0-day olarak gönderildi ve Jaeyoung Chung tarafından raporlanıp istismar edildi
- kernelCTF, Linux çekirdek istismarları için $71,337+ ödül veriyor
Neden tehlikeli
- Android'de root elde etme olasılığı olan nadir Linux yetki yükseltme hatalarından biri
- Birçok Linux yetki yükseltme zafiyeti, Android'in yüklemediği modülleri gerektirir; bu yüzden Android root ile sonuçlanmaz
- Google kernelCTF'de istismar edilen yaklaşık 130 zafiyet arasında Android root adayı yalnızca yaklaşık 10 tane var ve Bad Epoll de bunlardan biri
- Chrome renderer sandbox içinde bile tetiklenebiliyor
- Bu sandbox, neredeyse tüm diğer çekirdek hatalarını engeller
- Bir renderer istismarı Bad Epoll ile zincirlenirse, Project Zero'nun
MSG_OOBile gösterdiği örneğe benzer şekilde çekirdek kod yürütmeye kadar varan etki oluşabilir
epolliçin bir kill-switch yok- Copy Fail ailesindeki sorunlar, zafiyetli modül unload edilerek etkisiz hale getirilebilir
epoll, işletim sistemi, ağ servisleri ve tarayıcıların bağımlı olduğu çekirdek bir işlev olduğu için devre dışı bırakılamaz- Tek çözüm yamayı uygulamaktır
- Yarış penceresi yaklaşık 6 komut kadar küçük
- Sıradan denemeler neredeyse hiç tutmaz
- İstismar, yarış penceresini genişletir ve çekirdeği çökertmeyen bir yeniden deneme döngüsü çalıştırır
- Sonuç olarak kernelCTF hedeflerinde %99 seviyesinde güvenilirlik gösterir
Mythos'un kaçırdığı hata
- 2023 tarihli tek bir commit olan
58c9b016e128, yaklaşık 2.500 satırlıkepollkoduna iki ayrı yarış durumu ekledi - Anthropic'in Mythos sistemi bunlardan birini bulup CVE-2026-43074 olarak raporladı
- Bu sonuç, çekirdek yarış durumu hatalarını tespit etmenin ne kadar zor olduğunu göstermesi açısından anlamlı bir örnek
- Daha sonra bağımsız bir araştırmacı, bu zafiyet için 1-day istismarı kernelCTF'ye gönderdi
- Diğer yarış durumu Bad Epoll idi ve Mythos bunu kaçırdı
- Mythos aynı küçük
epollkod yolunda ilk hatayı bulduğu için, bu alanı anlamlı biçimde incelemiş olması muhtemel - Bad Epoll'ün neden kaçırıldığı tam olarak bilinmiyor
- Mythos aynı küçük
- Bad Epoll'ü tespit etmeyi zorlaştırmış olabilecek etkenler
- Yarış penceresi yalnızca yaklaşık 6 komuttan oluştuğu için, sadece zafiyetli koda bakarak doğru thread iç içe geçişini hayal etmek zor
- CVE-2026-43074 düzeltmesinden sonra Bad Epoll'ün UAF'si genellikle KASAN'ı tetiklemiyor
- KASAN sinyali olmayınca Mythos, bunun gerçek bir hata olduğuna dair yeterli güveni elde edememiş olabilir
- Düzeltmesi de kolay olmadı
- Bakımcının ilk yaması sorunu tamamen çözmedi
- Doğru yama, ilk bildirimden iki ay sonra mainline'a girdi
Saldırı akışı
- İki
epollclose yolu aynı anda çalışıp çakışıyor- Yollardan biri nesneyi serbest bırakırken diğeri aynı nesneye yazmayı sürdürdüğü için UAF oluşuyor
- İstismar, dört
epollnesnesini iki çift halinde kuruyor- Bir çift yarış durumunu tetikliyor
- Diğer çift kurban nesne oluyor
- Ardından 8 baytlık UAF write, file nesnesi UAF'ına dönüştürülüyor
- Cross-cache saldırısıyla file içeriğinin tamamı kontrol ediliyor
- Kontrol elde edildikten sonra
/proc/self/fdinfoüzerinden keyfi çekirdek belleği okuma yeteneği kazanılıyor - Son aşamada kontrol akışı ele geçiriliyor ve ROP chain çalıştırılarak root shell elde ediliyor
- Ayrıntılı teknik materyaller
Azaltım ve etkilenen sürümler
epolldevre dışı bırakılamadığı için basit bir geçici çözüm yok- Çözüm, upstream
a6dc643c6931commit'ini ya da dağıtım backport'unu uygulamak - Zafiyetin eklenme ve düzeltilme zamanı
- Eklendi: [
58c9b016e128], 2023-04-08 - Düzeltildi: [
a6dc643c6931], 2026-04-24
- Eklendi: [
- v6.4 ve üzeri tabanlı çekirdek kullanan ve düzeltme backport'unu henüz uygulamamış Linux dağıtımları etkilenebilir
- v6.1 tabanlı eski çekirdekler, zafiyet v6.4'te eklendiği için etkilenmiyor
İstismar hedefleri ve Android durumu
- Mevcut istismar şu anda Google kernelCTF hedeflerine göre hazırlanmış durumda
lts-6.12.67(LTS): %99 güvenilircos-121-18867.294.100(COS): %98 güvenilir
- Android istismarı hâlâ geliştirme aşamasında
- Pixel 10, kernel v6.6+: mevcut PoC UAF'yi tetikliyor ve tam root istismarı üzerinde çalışılıyor
- Android istismarı ve writeup tamamlandığında yayımlanacak
- Pixel 8 ve diğer v6.1 tabanlı cihazlar, zafiyet v6.4'te eklendiği için etkilenmiyor
Zaman çizelgesi
- 2023-04-08:
58c9b016e128commit'i ileepolliçine hata eklendi - 2026-02-17: Hata security@kernel.org adresine bildirildi
- 2026-02-17: Bakımcı bir yama prototipi önerdi ancak doğru düzeltme bu değildi ve tartışma durdu
- 2026-04-02: Mythos'un bulduğu CVE-2026-43074 düzeltmesi mainline'a girdi
- 2026-04-22: Kalan sorun yeniden bildirildi
- 2026-04-24: Bad Epoll düzeltme commit'i
a6dc643c6931mainline'a girdi
İsim ve referans materyalleri
- Bad Epoll adı, Android'de root olanağı sunan çekirdek hatalarına verilen “Bad” serisini takip ediyor
- Önceki örnekler arasında Bad Binder, Bad IO_uring ve Bad Spin bulunuyor
- Bu sayfa kısa sürümdür; tam root-cause analizi, istismar belgeleri ve kod ayrı bağlantılarla sunuluyor
1 yorum
Lobste.rs yorumları
Bu açığın Chrome sandbox içinden erişilebilir olması gerçekten büyük olay; kCTF üzerinden bildirilmiş olmasına rağmen ödülün yalnızca $71k ile sınırlı kalması biraz şaşırtıcı.
Bryan Cantrill yine haklı çıktı.
Dışarıdan boş gibi görünen depoya aldanmayın. Exploit, README’nin alt tarafında bağlantılanmış.
Henüz test etmedim ve bir azaltma önlemi yok. Yazarlar Android root etmenin de mümkün olduğunu iddia ediyor; Android ekosistemini düşününce üreticimin yamayı ancak bir ay kadar sonra vereceğini tahmin ediyorum. Üstelik Chrome renderer sandbox içinde de çalışıyor.
Bu Android üzerinde de çalışıyor mu?
Bunun nasıl keşfedildiğine dair bilgi var mı? Mythos bunu kaçırmış deniyor; başka bir büyük dil modeli yardımıyla mı bulundu, yoksa bir insan inceleyerek mi buldu merak ediyorum.
Öyleyse neden özellikle bu kısma baktıkları da merak konusu.
“Birçok Linux dağıtımı, v6.4 veya üzeri tabanlı kernel kullanıyorsa ve düzeltmeleri henüz backport etmediyse etkilenebilir. Yukarıdaki düzeltme commit’lerinin backport edilip edilmediğini dağıtımınızın kernel güvenlik güncellemelerinden kontrol edin. Eski v6.1 tabanlı kernel’ler, hata v6.4’te tanıtıldığı için etkilenmez.”
Yazık. Telefon root etmek için iyi bir yöntem olmasını umuyordum ama fazla yeni olduğu için özellikle kullanışlı olmayacak gibi. Benim telefonum 5.15.