CVE-2026-31431: Küçük Bir Python Dosyasıyla Linux’ta Root Yetkisi Elde Etme Açığı
Linux sistemleri güvenlik açısından güçlü yapılarıyla bilinse de zaman zaman çekirdek seviyesinde ciddi güvenlik açıkları ortaya çıkabilmektedir. Bu açıklar, saldırganların sistem üzerinde yetki yükseltmesine ve kritik işlemleri gerçekleştirmesine neden olabilir.
Yasal Uyarı ve Etik Kullanım
Bu makaledeki bilgiler yalnızca:
Eğitim,
Araştırma,
Siber güvenlik farkındalığı,
Yetkili laboratuvar testleri
amacıyla hazırlanmıştır.
Anlatılan yöntemlerin izinsiz sistemlerde kullanılması yasa dışıdır ve ciddi hukuki sonuçlar doğurabilir. Tüm testler yalnızca kullanıcıya ait veya açık izin verilmiş sistemlerde gerçekleştirilmelidir.
CVE-2026-31431 Nedir?
CVE-2026-31431, Linux çekirdeğinde bulunan ve 7.8 CVSS puanı ile yüksek seviyede değerlendirilen bir yerel yetki yükseltme (Local Privilege Escalation) güvenlik açığıdır.
Bu açık sayesinde normal kullanıcı yetkisine sahip bir saldırgan, sistemdeki bazı kritik programların bellek önbelleğini manipüle ederek root yetkisi elde edebilir.
Özellikle aşağıdaki yetkili programlar hedef alınabilir:
susudo
Açığın Temel Mantığı
Normal şartlarda Linux sistemlerde çalışan programların dosyaları diskte korunur ve kullanıcılar bunları doğrudan değiştiremez.
Ancak bu güvenlik açığında saldırgan:
AF_ALGkripto soket arayüzünü,splice()sistem çağrısını
birlikte kullanarak programların sayfa önbelleğine (page cache) veri yazabiliyor.
Bu işlem sırasında:
Dosya doğrudan diskte değişmiyor,
Yarış durumu (race condition) gerekmiyor,
Karmaşık çekirdek manipülasyonlarına ihtiyaç duyulmuyor.
Sadece birkaç baytlık değişiklik ile sistemde root yetkisi elde edilebiliyor.
Sayfa Önbelleği (Page Cache) Nedir?
Linux, sık kullanılan dosyaları hız amacıyla RAM üzerinde önbellekte tutar. Buna Page Cache adı verilir.
Bu güvenlik açısında saldırgan:
Diskteki gerçek dosyayı değiştirmeden,
RAM üzerindeki önbelleğe müdahale ederek,
Yetkili programın davranışını değiştirir.
Bu nedenle saldırı tespit edilmesi zor bir yöntemdir.
Açığın Tehlikesi
Bu güvenlik açığının önemli olmasının nedenleri şunlardır:
Yerel kullanıcı erişimi yeterlidir.
Root parolası bilinmeden yetki yükseltilebilir.
Karmaşık exploit teknikleri gerektirmez.
Bazı güvenlik mekanizmalarını aşabilir.
Gerçek sistemlerde kullanıldığı doğrulanmıştır.
Açık ayrıca KEV (Known Exploited Vulnerabilities) listesine eklenmiştir. Bu da saldırının gerçek ortamda aktif olarak kullanıldığını göstermektedir.
Laboratuvar Ortamının Hazırlanması
1. Güvenlik Açığı İçeren Çekirdeğin Kurulması
Test ortamı için güvenlik açığı bulunan bir Linux çekirdeği gereklidir.
Bu örnekte:
Pardus ETAP 23 (Debian Linux) kurulmuştur.
Çekirdek sürümü güvenlik açığı bulunan sürümlerden biriyle değiştirilmiştir.
Gerçek sistemlerde test yapılmamalıdır. Sanal makine kullanılması önerilir.
PoC (Proof of Concept) Dosyasının İndirilmesi
Aşağıdaki GitHub deposunda örnek PoC kodları bulunmaktadır:
Bu depo içerisinde:
Güvenlik açığını test eden Python betiği,
Exploit dosyası,
Açıklamalar
yer almaktadır.
PoC (Proof of Concept) dosyası, bir fikir, güvenlik açığı, yazılım veya yöntemin gerçekten çalıştığını göstermek için hazırlanan örnek/demo dosyadır. Türkçede genellikle “Kavram Kanıtı” olarak çevrilir.
Siber güvenlikte PoC, bir güvenlik açığının sömürülebileceğini göstermek amacıyla hazırlanır.
Basit Anlatım
Bir geliştirici şöyle diyebilir:
“Bu sistemde açık var.”
Ama bunu kanıtlamak için küçük bir kod yazarsa:
“Bakın, bu kod çalışınca sistem etkileniyor.”
İşte bu kod veya dosya bir PoC dosyasıdır.
Güvenlik Açığının Test Edilmesi
İlk olarak mevcut kullanıcının normal kullanıcı olup olmadığı kontrol edilir:
id
Örnek çıktı:
uid=1003(user) gid=1003(user)
Bu değer kullanıcının root olmadığını gösterir.
Sistem Açığa Karşı Savunmasız mı?
Aşağıdaki Python test dosyası çalıştırılır:
python3 test_cve_2026_31431.py
Eğer aşağıdakine benzer çıktı alınırsa:
AF_ALG modülü kullanılabilir.
sistem güvenlik açığından etkileniyor olabilir.
Exploit Çalıştırılması
Daha sonra exploit betiği çalıştırılır:
python3 exploit_cve_2026_31431.py --shell
Başarılı olduğunda kullanıcı kimliği:
1003
değerinden:
0000
değerine dönüşebilir.
Linux sistemlerde UID değeri:
0→ Root kullanıcısıDiğer sayılar → Normal kullanıcı
anlamına gelir.
Root Yetkisi Kontrolü
Yetki yükseltme sonrası aşağıdaki komut çalıştırılır:
id
Örnek çıktı:
uid=0(root) gid=0(root)
Bu durumda sistem üzerinde root ayrıcalıkları elde edilmiş olur.
Korunma Yöntemleri
1. Çekirdek Güncellemesi Yapın
En önemli çözüm:
Güncel Linux çekirdeği kullanmaktır.
Dağıtımınızın güvenlik duyurularını takip ederek etkilenmeyen sürümlere yükseltme yapın.
2. algif_aead Modülünü Devre Dışı Bırakın
Geçici önlem olarak ilgili modül devre dışı bırakılabilir:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
Bu işlem ilgili çekirdek modülünün yüklenmesini engeller.
3. Yetkisiz Kullanıcı Erişimini Kısıtlayın
Bu açık yerel erişim gerektirdiği için:
Gereksiz kullanıcı hesaplarını kaldırın,
SSH erişimlerini sınırlandırın,
Yetki denetimlerini sıkılaştırın.
Siber Güvenlik Açısından Önemi
Bu güvenlik açığı birkaç önemli gerçeği göstermektedir:
Küçük bellek manipülasyonları büyük sonuçlar doğurabilir.
Çekirdek güvenliği sistem güvenliğinin temelidir.
Page cache gibi düşük seviyeli mekanizmalar saldırı yüzeyi oluşturabilir.
Güncelleme yapılmayan Linux sistemleri ciddi risk altındadır.
Sonuç
CVE-2026-31431, Linux çekirdeğinde bulunan ve düşük ayrıcalıklı kullanıcıların root yetkisi elde etmesine imkan tanıyan ciddi bir güvenlik açığıdır.
Açığın en dikkat çekici yönleri:
Çok küçük veri yazımıyla çalışabilmesi,
Diskte doğrudan değişiklik yapmaması,
Karmaşık exploit tekniklerine ihtiyaç duymamasıdır.
Sistem yöneticilerinin:
çekirdek güncellemelerini düzenli yapması,
güvenlik modüllerini kontrol etmesi,
yerel kullanıcı erişimlerini sınırlandırması
kritik önem taşımaktadır.
Kaynaklar
Siber Güvenlikte Hayalet Saldırılar: "Copy Fail" (CVE-2026-31431)
Siber güvenlik dünyasını sarsan ve Pardus ETAP 23 (Cinnamon ortamı) akıllı tahtalarımızdan, en güçlü sanallaştırma sunucularına kadar her şeyi tehdit edebilen çok sinsi bir açık, "Copy Fail" zafiyeti.
Normalde bir sisteme sızmak dendiğinde aklınıza hemen diske zararlı bir dosya indirmek veya şifreleri kırmak gelir. Peki ya saldırgan diske hiç dokunmadan, sadece bilgisayarın "kısa süreli hafızasıyla" oynayarak en yetkili kişi (Root) olursa? Hazırsanız bu hayalet saldırının anatomisine bakalım.
1. Bilgisayarın "Hızlı Okuma" Taktiği: Sayfa Önbelleği (Page Cache)
Bu açığı anlamak için önce işletim sisteminin (Linux) nasıl çalıştığını bilmeliyiz.
Dosyalarımız normalde Sabit Disk'te (SSD/HDD) durur. Ancak işlemcinin her defasında diske gidip veri okuması çok yavaştır. Linux bunu çözmek için Sayfa Önbelleği (Page Cache) adında bir sistem kullanır.
Bunu okulumuzun kütüphanesi gibi düşünün. Sabit disk, arka taraftaki kilitli, devasa ana arşivdir (yavaştır).
RAM (Sayfa Önbelleği) ise kütüphanecinin önündeki masadır. Bir kitabı (dosyayı) okumak istediğinizde, kütüphaneci onu arşivden alır ve masaya koyar. Bir daha aynı dosyaya ihtiyaç duyulduğunda, sistem yavaş olan arşive gitmez, direkt masadaki kopyayı okur (çok hızlıdır).
2. Kırmızı Takım Sahaya İniyor: Zafiyet Nasıl Çalışıyor?
Linux'un kriptografi (şifreleme) modüllerinden birinde 2017'den beri var olan bir kodlama hatası, 2026'da "Copy Fail" (CVE-2026-31431) adıyla patlak verdi. Bu hata, çok küçük bir Python betiği çalıştırarak işletim sistemini kandırmayı sağlıyor.
Sistemde şifrelerin ve kullanıcı yetkilerinin tutulduğu çok kritik bir dosya vardır: /etc/passwd. Bu dosyayı sadece "Root" (Süper Yönetici) değiştirebilir. Kırmızı Takım'daki bir saldırganın bu dosyaya yazma yetkisi yoktur, sadece okuyabilir.
İşte saldırı tam bu noktada başlar:
Tuzak: Saldırgan
/etc/passwddosyasını okumak ister. Linux bu dosyayı hızlandırmak için arşivden (diskten) alır ve kütüphanecinin masasına (RAM'e) koyar.Sihirli Dokunuş: Saldırgan, şifreleme modülündeki o küçük hatayı tetikler. Bu hata sayesinde, sadece masadaki kopyanın üzerine 4 baytlık bir veri yazar. Kendi normal öğrenci hesabının karşısındaki
1000(standart kullanıcı numarası) değerini siler ve yerine0000(Root numarası) yazar.Ele Geçirme: Arşivdeki (Sabit diskteki) orijinal dosya sapasağlamdır, hiçbir alarm çalmaz. Antivirüsler bir gariplik görmez. Ancak sistem artık o masadaki sahte dosyaya bakarak işlem yaptığı için, saldırganı bir anda Süper Yönetici (Root) olarak tanır. Oyun bitmiştir; saldırgan artık sistemdeki her şeye hükmedebilir.
3. Mavi Takım Savunması: Hayaleti Nasıl Yakalarız?
Mavi Takım koltuğunda oturuyorsanız işiniz zor. Çünkü ortada silinmiş veya virüs bulaşmış fiziksel bir dosya yok. Tüm manipülasyon RAM'in içinde dönüyor. Büyük finalde böyle bir durumla karşılaşırsanız yapmanız gerekenler şunlardır:
RAM'i Temizle (Acil Müdahale): Sistemi kandıran şey masadaki sahte kopya olduğuna göre, masayı anında temizlemeliyiz! Terminale şu komutu girdiğimizde önbellek (Page Cache) boşaltılır:
echo 3 > /proc/sys/vm/drop_cachesBu komut, sistemi dosyaları tekrar arşivden (sabit diskten) temiz ve orijinal haliyle okumaya zorlar. Saldırganın sahte Root yetkisi anında yok olur.
Log Analizi: Antivirüsler bu saldırıyı kaçırsa da, normal bir kullanıcının aniden yetki yükseltip
su(switch user) komutuyla Root oturumu açması sistem loglarında (kayıtlarında) iz bırakır. Bu logları bulup olay müdahale raporunuza eklemelisiniz.Sistemi Güncelle (Kalıcı Çözüm): Kesin çözüm her zaman yamadır (patch). Pardus ve diğer Linux dağıtımlarının yayınladığı çekirdek (kernel) güncellemelerini sistemlere kurarak bu kodlama hatasını sonsuza dek kapatmalıyız.
Siber güvenlik sadece diske kaydedilen dosyaları korumak değildir. İşletim sisteminin o an bellekte (RAM) ne yaptığına da hakim olmanız gerekir.




Yorumlar