1 puan yazan GN⁺ 4 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Linux çekirdeğinin epoll alt 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ı epoll kodunda 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 58c9b016e128 commit'i ile eklendi ve 2026-04-24 tarihli a6dc643c6931 commit'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 epoll alt 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_OOB ile gösterdiği örneğe benzer şekilde çekirdek kod yürütmeye kadar varan etki oluşabilir
  • epoll iç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ık epoll koduna 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 epoll kod 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
  • 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 epoll close 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 epoll nesnesini 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

  • epoll devre dışı bırakılamadığı için basit bir geçici çözüm yok
  • Çözüm, upstream a6dc643c6931 commit'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
  • 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üvenilir
    • cos-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: 58c9b016e128 commit'i ile epoll iç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 a6dc643c6931 mainline'a girdi

İsim ve referans materyalleri

  • Bad Epoll adı, Android'de root olanağı sunan çekirdek hatalarına verilen “Bad” serisini takip ediyor
  • Bu sayfa kısa sürümdür; tam root-cause analizi, istismar belgeleri ve kod ayrı bağlantılarla sunuluyor

1 yorum

 
GN⁺ 4 시간 전
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ı.

    • Kabul etmesi biraz utandırıcı ama dürüst olmak gerekirse benim de ilk düşüncem aynıydı.
    • Merak ettim. Neyi doğru tahmin ettiğini bilmiyorum, bağlamı kaçırdım.
    • Mümkünse biraz bağlam verilmesi iyi olur.
  • 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.

    • 2023’te bir Android telefon aldım; son kernel güncellemesi 2024 ortasındaydı. Bu hata o döneme aitse, yamayı alabilenler aslında azınlıkta olabilir.
  • Bu Android üzerinde de çalışıyor mu?

    • İkinci cümlede yazıyor ya.
  • 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.