732 baytlık bir Python scripti, Ubuntu 22.04, Amazon Linux 2023, SUSE 15.6 ve Debian 12'de aynen çalışıyor ve root erişimi veriyor. Theori güvenlik şirketi Nisan 2026'da açığı duyurduğunda, bu dağıtımların hiçbirinde yama yoktu. CVE-2026-31431 adı verilen ve artık "CopyFail" olarak bilinen açık, Linux çekirdeğinin kripto API'sinde 2017 yazında yapılan bir kod değişikliğinde ortaya çıkmış ve dokuz yıl gözden kaçmıştı. Güvenlik uzmanları, açığın ağırlığını 2016'daki Dirty Cow ve 2022'deki Dirty Pipe ile aynı kategoriye koyuyor: sistemin tamamını ele geçirme, hiçbir yarış durumuna veya kernel ofsetine gerek yok.
2017'nin masumane bir optimizasyonu nasıl dokuz yıllık zafiyet oldu
Açığın kökü, Linux kernel geliştirici kayıt defterinde Ağustos 2017'de onaylanmış bir koda dayanıyor. Değişiklik, IPsec Extended Sequence Number desteği için kullanılan AEAD (Authenticated Encryption with Associated Data) şablonunu optimize etmeyi hedefliyordu. Kod, algif_aead modülü içinde kopyalama yöntemlerini değiştirdi ve in-place işlem mantığı getirdi. Ancak bu optimizasyon, sayfa önbelleği işlemlerinde bir mantık hatası yarattı.
Hata kendini şöyle gösteriyor: ayrıcalıksız bir kullanıcı, sisteme giriş yaptıktan sonra, herhangi bir okunabilir dosyanın page cache içeriğini değiştirmek için AEAD şifreleme API'sine istek gönderebiliyor. Dosyanın kendisi diskte bozulmadan kalıyor, ancak çekirdek belleğindeki imajı değişiyor. Theori araştırmacıları, bu yeteneği kullanarak setuid binary dosyalarını (su, sudo gibi araçlar) sayfa önbelleğinde modifiye edip root erişimi kazandıklarını gösterdi.
CopyFail'in dokuz yıl kayıtlara girmemesinin teknik nedeni, yer aldığı kodun hem kripto katmanında hem de IPsec özelliği için sınırlı kullanıma sahip olması. Modül varsayılan olarak kernel imajlarında bulunuyor ancak çoğu sistem yöneticisinin dikkatini çekmiyor.
732 baytlık Python kodu neden bu kadar etkili
CopyFail'i farklı kılan dört özelliği var: taşınabilirlik, küçük boyut, gizlilik ve kapsayıcılar arası çalışma. Exploit kodu 732 bayt ve hiçbir dağıtıma özel düzenleme gerektirmiyor. Bu, çoğu kernel exploit'inin kernel ofset bulmak için otomatik tarama yapması veya hedef dağıtıma özel değerler içermesiyle keskin bir tezat oluşturuyor.
Kod, Linux çekirdeğinin algif_aead arayüzünü AF_ALG soket API'si üzerinden kullanıyor ve herhangi bir okunabilir dosyanın page cache'ine dört bayt yazıyor. Dört bayt küçük görünse de, setuid binary'lerde kritik kontrol değişkenlerini veya return adreslerini değiştirmek için yeterli. Theori, Ubuntu 22.04 sistemde /usr/bin/su dosyasının önbellek kopyasını modifiye ederek root shell açtı ve hiçbir diskteki dosya değişmedi.
Exploit yarış durumu gerektirmiyor, bu da başarı oranının neredeyse %100 olduğu anlamına geliyor. Dirty Pipe gibi önceki bellekte yazma açıkları, belirli zamanlama pencereleri gerektiriyordu. CopyFail'de bu zorunluluk yok. Herhangi bir Linux dağıtımında bir kez çalıştırılıp test edildiğinde, kod başka sistemlere kopyalanıp aynen çalıştırılabiliyor. Theori araştırmacıları, exploit kodunu yaklaşık bir saatlik çabada sil baştan yazdıklarını belirtti.
Theori'den uyarı geldi, çoğu dağıtımda yama yoktu
Theori, CVE-2026-31431'i Linux kernel güvenlik ekibine beş hafta önceden bildirdi. Exploit kodu açıklandığında Ubuntu 22.04, Amazon Linux 2023, SUSE 15.6 ve Debian 12'de hiçbir yama yoktu. Arch Linux ve RedHat Fedora, açığın açıklanmasından sonraki günlerde yama yayınladı.
Beş haftalık süre, standart sorumlu açıklama için yeterli görülse de, kernel yamaları regresyon testleri, paket entegrasyonu ve müşteri bilgilendirme süreçleriyle birkaç haftayı alıyor. Theori'nin bildirimi yalnızca upstream kernel ekibine iletildi, dağıtım maintainer'larına doğrudan ulaşmadı. Linux güvenlik ekibi hızlı bir düzeltme geliştirse de, dağıtımlar standart entegrasyon süreçlerine tabi tutuldu. Açıklama gününde yamasız kalan dağıtımlar, saldırganların exploit kodunu hemen kullanabilecekleri bir zaman penceresi yarattı.
Multi-tenant Kubernetes ve CI/CD pipeline'ları tehdit altında
CVE-2026-31431'in pratik risk profili paylaşımlı kernel ortamlarında belirgin hale geliyor. Kubernetes pod'ları aynı node üzerinde çalıştığında, tek bir yetkisiz pod root erişimi kazanıp tüm node'u ele geçirebiliyor. Container escape olmadan doğrudan host'a geçiş mümkün. Bu, geleneksel container güvenlik varsayımlarını etkisiz hale getiriyor: namespace, cgroup veya seccomp filtreleri CopyFail'in önüne geçmiyor.
Paylaşımlı hosting sağlayıcılarında, farklı müşterilerin aynı kernel üzerinde çalıştığı sistemlerde, bir müşterinin diğer tüm müşterilerin verilerine erişme riski doğuyor. CopyFail, tüm dosyaları okuyup modifiye etme yeteneği veriyor, ancak disk üzerinde hiçbir iz bırakmıyor. Dosya bütünlük izleme araçları etkilenmiş sistemleri tespit edemeyebiliyor, çünkü diskte her şey normal görünüyor.
CI/CD pipeline'larında, saldırganlar job container'larına exploit kodu enjekte edip runner makinesinde root erişimi kazanabiliyorlar. Runner host'unda root olan bir saldırgan, diğer tüm build job'larının çıktılarına erişip, artefaktlara backdoor yerleştirebilir veya kaynak kodunu manipüle edebilir. Bu, tedarik zinciri saldırıları için kritik bir giriş noktası oluşturuyor.
Açık uzaktan istismar edilmese de, bir saldırgan yerel kod çalıştırma yeteneği kazandığında (web uygulaması zafiyeti veya SSH erişimi yoluyla) CopyFail doğrudan root erişimi sağlıyor. Modern saldırı senaryolarında, saldırganlar ilk ayak tutma için düşük yetkili bir kullanıcı hesabı ele geçiriyor, sonra ayrıcalık yükseltme açıkları kullanıyor. CopyFail, bu ikinci adımı triviyal hale getiriyor.
Bellekte yazma açıkları neden tekrar edip duruyor
CopyFail, 2016'daki Dirty Cow ve 2022'deki Dirty Pipe ile aynı zafiyet sınıfına giriyor: kernel page cache'e kontrolsüz yazma. Her üç açık da farklı kernel alt sistemlerinden kaynaklanıyor ancak aynı sonuca varıyor: yerel ayrıcalıksız kullanıcıdan root'a geçiş.
Dirty Cow, copy-on-write mekanizmasında yarış durumundan kaynaklanıyordu. Dirty Pipe, pipe buffer'larındaki flag kontrolünün eksikliğinden yararlanıyordu. CopyFail ise AEAD kripto API'sinde in-place işlem mantığındaki hatadan kaynaklanıyor.
Kernel geliştirme ekipleri, CVE-2026-31431 yamalarını yaparken 2017 optimizasyonunu tamamen geri aldı ve out-of-place işlemlere geri döndü. Bu, performans kaybı anlamına geliyor ancak güvenlik öncelikli. Yama stratejisi, hatanın olduğu kod yolunu tamamen ortadan kaldırıyor.
Bu tür açıkların tekrar ortaya çıkması, kernel bellek yönetiminin kompleksliğini ve çeşitli alt sistemler arasındaki etkileşimlerin beklenmeyen güvenlik sonuçlarını gösteriyor. Güvenlik incelemeleri yapılsa da, şifreleme API gibi daha az kullanılan alanlarda mantık hataları yıllarca tespit edilmeden kalabiliyor. Kernel'inin geriye dönük uyumluluğu koruma ve performansı önceliklendirme kültürü, köklü mimari değişiklikleri yavaşlatıyor.
Kernel yaması ve tespit zorlukları
CVE-2026-31431'in CVSS skoru 7.8, yani yüksek ciddiyet sınıfında. Ancak sayısal skor, açığın pratik etkisini tam yansıtmıyor: multi-tenant sistemlerde çalışan herhangi bir Linux host, exploit kodu yayınlandığı anda savunmasız hale geldi.
Yamalar, çoğu major dağıtımda şu paket güncellemeleriyle geldi: - Ubuntu 22.04: kernel 6.2.0-39 ve üstü - Debian 12: linux-image 6.1.90-1 ve üstü - RHEL/Rocky/Alma Linux 9: kernel 5.14.0-427 ve üstü - SUSE 15.6: kernel-default 5.14.21-150600.93.1 ve üstü
Ancak birçok sistem, otomatik güncelleme politikaları devrede olmadığı için hala yamasız. Özellikle LTS dağıtımlarında, system update'lerin manuel onay gerektirdiği production ortamlarında yama uygulaması yavaş ilerliyor.
CopyFail'in bıraktığı izleri tespit etmek zordur: disk üzerindeki dosyalar değişmediği için dosya bütünlük izleme çalışmıyor. Runtime detection, bir kullanıcının AF_ALG arayüzünü AEAD işlemleri için açıp beklenmedik dosyalara erişim yapmasını izlemek gerekiyor. Bu API kripto işlemleri için meşru kullanımı olan bir arayüz olduğu için anomali tespit etmek çeşitli faktörlere bağlı.
Behavioral monitoring, setuid binary'lerin beklenmedik şekilde çalışması veya ayrıcalıksız kullanıcıların kısa sürede root shell açması gibi anomalileri tespit edebilir. SELinux veya AppArmor gibi mandatory access control sistemleri, exploit sonrası root erişimini sınırlandırabilir, ancak exploit'in kendisini önleyemez.
Acil yapılması gereken adımlar
Paylaşımlı Kubernetes cluster'ları, multi-tenant Linux sistemleri veya CI/CD runner host'ları yönetiyorsan, şu adımları bu hafta içinde tamamla:
1. Tüm Linux node'larında uname -r ile kernel versiyonunu kontrol et ve CVE-2026-31431 yamalarını içeren en son kernel'e güncelle. 2. Kubernetes pod security policy'lerini inceleyip least-privilege prensibi doğrultusunda pod permission'larını sınırla. 3. CI/CD runner'larını ayrı VM'lere taşı veya container runtime olarak gVisor gibi kernel-isolation sağlayan araçları değerlendir. 4. Audit log'larını son iki haftaya kadar tarayıp AF_ALG socket kullanımı, AEAD işlemleri ve setuid binary'lere erişim pattern'lerini incele.
CopyFail exploit kodu kamuya açık ve saldırı karmaşıklığı sıfır. Güvenlik duvarları veya network izolasyonu bu açığı önlemez — kernel yaması tek çözüm. Herhangi bir sistem yöneticisi için bu, ertesi hafta tehdidin aktif hale gelmesi anlamına geliyor.