Linux çekirdeğinde 15 yılı aşkın süredir varlığını sürdüren kritik bir güvenlik açığı gün yüzüne çıktı. VEGA güvenlik araştırmacıları tarafından keşfedilen GhostLock (CVE-2026-43499), tüm büyük Linux dağıtımlarını etkileyen ve özel bir çekirdek yapılandırması gerektirmeyen bir stack-UAF (Use-After-Free) zafiyeti. Açık, yetkisiz bir yerel saldırganın %97 başarı oranıyla root yetkisi elde etmesine ve konteyner kaçışı gerçekleştirmesine olanak tanıyor. Google, kernelCTF programı kapsamında bu açığı bildiren araştırmacılara 92.337 dolar ödül verdi.
GhostLock'un temel nedeni, Linux çekirdeğinin rtmutex (gerçek zamanlı mutex) mekanizmasındaki bir hata. Açık, 2011 yılında Linux 2.6.39 sürümüyle birlikte eklenen ve Nisan 2026'da Linux 7.1 ile düzeltilen bir kod parçasından kaynaklanıyor. Zafiyet, FUTEX_CMP_REQUEUE_PI işlemi sırasında remove_waiter() fonksiyonunun yanlış kullanımından ortaya çıkıyor. Bu fonksiyon, aslen bir iş parçacığının kendi engelleme yapısını temizlemesi için tasarlanmışken, Requeue-PI mekanizması tarafından farklı bir iş parçacığı adına temizlik yapmak üzere çağrılıyor. Sonuçta, uyuyan iş parçacığının yığınındaki pi_blocked_on göstergesi temizlenmiyor ve bir süre sonra kullanıldığında çökme veya yetki yükseltmeye yol açıyor.
Açığın tetiklenmesi için üç iş parçacığı ve üç farklı futex (fast userspace mutex) sözcüğü gerekiyor. f_pi_chain adlı bir PI futex'i önce 'waiter' iş parçacığı tarafından kilitleniyor. Ardından 'owner' iş parçacığı f_pi_target adlı hedef futex'i kilitliyor. 'waiter', f_wait adlı düz futex üzerinde FUTEX_WAIT_REQUEUE_PI ile beklemeye geçiyor. Ana iş parçacığı FUTEX_CMP_REQUEUE_PI çağrısı yaparak 'waiter'ı f_pi_target'e aktarmaya çalışıyor. Ancak 'owner' zaten f_pi_chain üzerinde 'waiter'ı beklediğinden, döngüsel bir kilit oluşuyor ve çekirdek -EDEADLK hatası döndürüyor. Hata durumunda remove_waiter() çağrılıyor ve bu fonksiyon yanlış iş parçacığının pi_blocked_on alanını temizliyor. Aslında temizlenmesi gereken 'waiter'ın kendi yığınındaki göstergesi kalıyor ve daha sonra kullanıldığında UAF oluşuyor.
GhostLock'un etkileyici yanı, açığın tetiklenmesi için herhangi bir özel çekirdek yapılandırmasına veya yetkiye ihtiyaç duyulmaması. CONFIG_FUTEX_PI=y seçeneğinin etkin olması yeterli ki bu çoğu dağıtımda varsayılan olarak açık. Açık, kullanıcı ad alanı (user namespace) gibi ek güvenlik önlemlerini de atlatabiliyor. Araştırmacılar, açığı %97 başarı oranıyla ayrıcalık yükseltme ve konteyner kaçışına dönüştürmeyi başardı. Bu, özellikle bulut ortamlarında konteyner izolasyonunu aşmak için ciddi bir tehdit oluşturuyor.
GhostLock'un keşfi, çekirdek güvenliğinde uzun süre fark edilmeyen hataların ne kadar tehlikeli olabileceğini bir kez daha gösteriyor. Açık, rtmutex kodundaki küçük bir varsayım hatasından kaynaklanıyor: remove_waiter() fonksiyonu her zaman current (çalışan iş parçacığı) ile waiter'ın aynı olduğunu varsayıyor. Oysa Requeue-PI mekanizmasında bu böyle değil. Düzeltme, waiter->task->pi_lock kullanılarak doğru iş parçacığının pi_blocked_on alanını temizlemek oldu. Bu tür hatalar, kodun farklı bağlamlarda yeniden kullanılmasının getirdiği riskleri gözler önüne seriyor.
Sistem Güvenliği
Linux kullanıcıları ve sistem yöneticileri için en önemli adım, sistemlerini mümkün olan en kısa sürede güncellemek. Açık, Linux 7.1 sürümünde düzeltildi ve dağıtımların büyük çoğunluğu güvenlik yamalarını yayınladı. Eğer sisteminizde eski bir çekirdek kullanıyorsanız, GhostLock'a karşı savunmasız olabilirsiniz. Güncelleme yapamayanlar için geçici çözüm olarak CONFIG_FUTEX_PI'nin devre dışı bırakılması önerilebilir, ancak bu performans kayıplarına yol açabilir. Ayrıca, güvenlik duvarı ve izleme sistemleriyle olağandışı davranışların tespit edilmesi de ek bir koruma katmanı sağlayabilir.
GhostLock, Linux çekirdeğindeki 15 yıllık bir kör noktayı ortaya çıkararak güvenlik topluluğuna önemli dersler veriyor. Kodun yeniden kullanımı ve farklı bağlamlarda çalıştırılması durumunda varsayımların doğru olmadığını gösteriyor. Bu tür zafiyetlerin keşfi, çekirdek geliştiricilerinin kod inceleme ve test süreçlerini daha da sıkılaştırmasına yol açacak. Kullanıcılar için en kritik önlem ise güncellemeleri takip etmek ve güvenlik yamalarını zamanında uygulamak. Unutmayın, bir açık 15 yıl boyunca fark edilmese bile, doğru araçlar ve yöntemlerle mutlaka gün yüzüne çıkacaktır.
Kaynak: nebusec.ai