Dosya Okuma Açıkları Neden Sessiz İlerler?
CVE-2026-29201, cPanel tarafında dosya adı doğrulamasının yetersiz yapılmasıyla ilişkili bir dosya okuma riskidir. Bu sınıftaki açıklar ilk bakışta uzaktan kod çalıştırma kadar dramatik görünmeyebilir; fakat hosting sunucularında etkisi küçümsenmemelidir. Bir saldırganın rastgele dosyayı doğrudan okuması veya bir dosyayı beklenmeyen şekilde okunabilir hale getirmesi, daha büyük bir saldırının ilk adımı olabilir. Sunucu yapılandırmaları, uygulama config dosyaları, geçici dosyalar, loglar, kullanıcı yolları ve token parçaları saldırgana operasyon haritası çıkarma imkanı verir. Bu yüzden dosya okuma açıklığı, yalnızca “bir dosya görüldü” meselesi değildir; sonraki saldırı zincirinin keşif aşamasıdır.
Hosting firmalarında en sık yapılan hata, dosya okuma riskini sadece web sitesi dosyalarıyla sınırlı düşünmektir. cPanel sunucusunda kullanıcı dizinleri, mail dosyaları, EasyApache ayarları, PHP-FPM havuzları, yedek geçici dizinleri, kullanıcı cronları ve panel logları aynı makinede yaşar. Bir dosyanın yanlış yetkiyle okunabilir hale gelmesi, doğrudan veri sızıntısı oluşturmasa bile içerideki servis isimlerini, kullanıcı adlarını, domain listesini veya özel path bilgisini açığa çıkarabilir. Saldırgan bu bilgiyi daha sonra brute force, token avı, API denemesi veya hedefli web shell araması için kullanabilir.
Riskin Pratik Karşılığı
Bu açık türünde temel mesele, uygulamanın “hangi dosyaya erişilebilir” sorusunu yeterince sıkı cevaplamamasıdır. Göreli path, beklenmeyen dosya adı veya özel karakterlerle tasarlanmış input, güvenli klasör sınırının dışına taşmaya çalışır. Modern uygulamalarda bunun engellenmesi için path normalize edilir, izin verilen dizin listesi tanımlanır, dosya adı regex ile sınırlanır ve son dosya yolu gerçek path üzerinden kontrol edilir. Panel gibi geniş yetkili bir yazılımda bu kontrollerden biri eksik kaldığında, etkisi tek bir modülün dışına taşabilir.
cPanel & WHM altyapılarında dosya okuma riski özellikle reseller ve kullanıcı ayrımı açısından hassastır. Bir kullanıcının kendi hesabı dışında bir path hakkında bilgi elde etmesi bile izolasyon ilkesini zedeler. CloudLinux, CageFS ve benzeri katmanlar bu riski azaltır ama panel seviyesindeki açığı kendi başına kapatmaz. Panelin yamalı build seviyesine çıkması zorunludur. Yardımcı güvenlik katmanları yalnızca hasarı sınırlamak için vardır; üretici yamasının yerine geçmez.
İlk Kontrol: Build ve Güncelleme Kanalı
Bu risk için ilk işlem, sunucudaki cPanel build sürümünü doğrulamaktır. `/usr/local/cpanel/cpanel -V` çıktısı alınmalı, sunucunun hangi dalda olduğu not edilmelidir. Ardından güncelleme kanalı kontrol edilmelidir. Bazı firmalar uzun süre stabil kalsın diye sürümü sabitler; bu yaklaşım normal dönemlerde anlaşılabilir fakat güvenlik duyurusu geldiğinde sorun çıkarır. Özellikle eski CentOS ve CloudLinux tabanlarında güncelleme dalı yanlışsa beklenen yama gelmez. Bu nedenle sadece otomatik güncelleme açık mı diye bakmak yetmez; aktif build gerçekten güvenli sürüme yükselmiş mi, bunu doğrulamak gerekir.
Güncelleme için genel yol `/scripts/upcp --force` çalıştırmak ve işlem bittikten sonra sürümü tekrar kontrol etmektir. Güncelleme sırasında EasyApache paketleri, cPanel servisleri ve bazı eklentiler de tetiklenebilir. Bu yüzden yoğun sunucularda işlem öncesi kısa bir durum notu alınmalıdır: disk doluluk oranı, MySQL durumu, cPanel lisansı, çalışan servisler, yedeklerin güncelliği ve kritik hesap sayısı. Amaç güncellemeyi ertelemek değil, işlem sonrası karşılaştırma yapabilmektir.
Loglarda Ne Aranmalı?
CVE-2026-29201 gibi dosya okuma başlıklarında log incelemesi, klasik login başarısızlıklarına bakmaktan ibaret olmamalıdır. cPanel access log, WHM API çağrıları, adminbin hareketleri ve aynı IP’den kısa sürede gelen sıra dışı istekler birlikte değerlendirilmelidir. Özellikle beklenmeyen path denemeleri, dosya adı parametrelerinde `../` benzeri örüntüler, encode edilmiş path parçaları ve olağan dışı feature çağrıları dikkat çeker. Loglarda tek bir satırı kanıt kabul etmek doğru değildir; zaman çizelgesi oluşturmak daha sağlıklıdır. Aynı IP önce panel endpointlerini yokluyor, sonra başarısız denemeler yapıyor, ardından farklı domainlerde 404 taraması başlatıyorsa bu bir keşif davranışıdır.
Sunucuda merkezi log tutma yoksa bile olay anında yerel loglar korunmalıdır. Rotasyonla silinmeden önce ilgili dosyalar salt okunur bir yedek dizine alınabilir. Ancak bunu yaparken müşteri verisini dışarı taşımamaya, log içindeki hassas tokenları paylaşmamaya dikkat edilmelidir. Teknik ekibin elinde net zaman aralığı varsa, inceleme daha hızlı yapılır: duyurudan önceki birkaç gün, yama uygulama saati ve yama sonrası ilk saatler ayrı ayrı ele alınmalıdır.
Yetki ve İzolasyon Katmanları
Dosya okuma riskini azaltmanın en önemli yollarından biri, sunucuda gereksiz geniş yetkileri kaldırmaktır. Kullanıcıların birbirinin dosyalarını okuyamaması temel beklentidir. PHP handler seçimi, suEXEC, PHP-FPM havuzları, CageFS, kullanıcı home izinleri, yedek dizin izinleri ve geçici klasör ayarları birlikte incelenmelidir. `/tmp`, `/var/tmp` ve uygulama cache dizinleri gereğinden fazla açık izinlerle bırakılmamalıdır. WordPress gibi uygulamalar için config dosyalarının sahiplik ve izinleri doğru olmalıdır; `wp-config.php` herkes tarafından okunabilir bir yapıya bırakılmamalıdır.
WHM tarafında reseller yetkileri de sadeleştirilmelidir. Her reseller’a paket düzenleme, DNS düzenleme, hesap taşıma veya yedek indirme gibi yetkiler otomatik verilmemelidir. Dosya okuma açığının doğrudan reseller üzerinden çalışması şart değildir; fakat geniş yetkili hesaplar ele geçirilirse olayın etkisi büyür. Güvenliğin amacı tek açığı kapatmak değil, tek açık oluştuğunda zincirin diğer halkalarını zayıf bırakmamaktır.
Müşteri İletişimi Nasıl Olmalı?
Bu tür güvenlik duyurularında müşteriye gereksiz panik yaratmadan bilgi vermek gerekir. “Sunucularımızda cPanel güvenlik güncellemesi uygulanmıştır, yönetim panelleri kısa süreli bakım moduna alınmıştır, log kontrolleri yapılmaktadır” gibi net bir dil yeterlidir. Eğer şüpheli erişim bulunmadıysa bu da açıkça belirtilmelidir. Eğer şüpheli erişim bulunduysa kapsam saklanmamalı, etkilenen müşterilere parola yenileme ve uygulama dosyalarını kontrol etme önerisi gönderilmelidir. Belirsiz açıklamalar müşterinin güvenini azaltır; net ve ölçülü bilgi daha değerlidir.
Kurum içi tarafta ise olay sonrası kısa bir rapor tutulmalıdır. Hangi build’den hangi build’e çıkıldı, güncelleme saati nedir, hangi loglar incelendi, panel portları nasıl kısıtlandı, hangi hesaplarda şüpheli oturum vardı veya yoktu, bunlar yazılı olmalıdır. Bir sonraki CVE duyurusunda aynı süreci tekrar keşfetmek yerine bu rapor kontrol listesi olarak kullanılabilir.
Ek Güvenlik Katmanları
Dosya okuma riskinden sonra yalnızca paneli güncellemek iyi bir başlangıçtır, fakat dosya erişim düzeni ayrıca sertleştirilmelidir. Kullanıcıların home dizinleri, eski yedek arşivleri, manuel alınmış SQL dump dosyaları ve public_html altında bırakılmış migration paketleri taranmalıdır. Bu dosyalar bazen yıllarca unutulur ve normalde okunmaması gereken bilgi içerir. Bir saldırgan dosya okuma açığını doğrudan kullanmasa bile kötü konumlandırılmış bir yedek dosyasını web üzerinden bulabilir. Bu yüzden güvenlik kontrolü, CVE ile sınırlı kalmadan veri hijyenine kadar genişletilmelidir.
ModSecurity, Imunify360, CSF veya benzeri katmanlar da bu süreçte anlamlıdır. Ancak bunlar üretici yamasının yerine konmamalıdır. WAF kuralları path traversal denemelerini azaltabilir, firewall şüpheli kaynakları yavaşlatabilir, Imunify web shell tespit edebilir. Fakat panel kodundaki doğrulama hatası ancak güncellemeyle kalıcı biçimde giderilir. En doğru model, önce yama, sonra erişim kısıtı, ardından log analizi ve dosya sistemi temizliğidir. Bu sırayı ters çevirmek, görünürde aktif koruma varmış gibi hissettirse de kök problemi açık bırakır.
Son olarak müşterilerin uygulama güvenliği de bu başlığın parçasıdır. cPanel yamalı olsa bile kullanıcı tarafında dünya tarafından okunabilir config dosyaları, eski zip arşivleri veya açık backup dizinleri varsa veri sızıntısı riski devam eder. Hosting firması müşterinin kodunu tamamen yönetmeyebilir; yine de periyodik tarama, uyarı ve güvenli dosya izin şablonlarıyla riski düşürebilir.
Bu kontrolde küçük ama etkili bir alışkanlık da dosya listelerini tarihe göre okumaktır. Son haftada değişen config dosyaları, aniden oluşan büyük arşivler, beklenmeyen `error_log` büyümeleri ve geçici klasörlerde beliren dosyalar hızlı sinyal verir. Her bulgu saldırı değildir; ancak değişiklik geçmişi bilinmeyen bir sunucuda bu liste teknik ekibe yön gösterir. Özellikle cPanel güncellemesi öncesi ve sonrası dosya değişimlerinin ayrılması, yanlış alarm ile gerçek olayı ayırmayı kolaylaştırır.
Kapanış kontrolü olarak panel erişim kayıtlarıyla dosya değişim saatleri yan yana getirilmelidir. Aynı dakikalarda hem şüpheli panel isteği hem de kritik dosya değişimi varsa konu daha dikkatli incelenir. Bu basit korelasyon, pahalı güvenlik ürünleri olmadan da uygulanabilir ve küçük hosting ekiplerine hızlı önceliklendirme sağlar.
Sonuç
CVE-2026-29201, dosya okuma riskinin hosting ortamında ne kadar ciddi sonuçlar doğurabileceğini hatırlatır. Bu açık için doğru refleks; build kontrolü, zorunlu güncelleme, log incelemesi, kullanıcı izolasyonu ve panel erişim yüzeyinin daraltılmasıdır. Yama uygulanmadan yalnızca WAF kuralı yazmak yeterli değildir. WAF ve firewall, saldırı yüzeyini azaltır; asıl çözüm panelin güvenli sürüme alınmasıdır. cPanel sunucularını yöneten ekipler için bu duyuru, eski işletim sistemi ve sabitlenmiş güncelleme kanallarını da yeniden değerlendirme zamanıdır.
