Exploit cPanel’de Hiçbir Şifre Girmeden "Root" Olma Rehberi (CVE-2026-41940) (1 Viewer)

Bu kritik zafiyetin (CVE-2026-41940) anatomisini, oluşumundan sömürülmesine ve düzeltilmesine kadar bir siber güvenlik uzmanı perspektifiyle, adım adım inceleyelim. 1. Zafiyet...

Bu kritik zafiyetin (CVE-2026-41940) anatomisini, oluşumundan sömürülmesine ve düzeltilmesine kadar bir siber güvenlik uzmanı perspektifiyle, adım adım inceleyelim.

1. Zafiyet Nedir ve Nasıl Oluştu?

Bu bir Kimlik Doğrulama Atlatma (Authentication Bypass) zafiyetidir . cPanel/WHM sisteminin oturum bilgilerini (kullanıcı yetkileri, giriş durumu vb.) sunucu üzerindeki dosyalarda saklama biçimindeki bir mantık hatasından kaynaklanır.


Zafiyetin oluşma süreci şu şekildedir:


  • Temizleme Hatası (Sanitization Failure): cpsrvd (cPanel servis programı), "Basic Authentication" üzerinden gelen şifreleri alırken sadece NUL (\0) karakterlerini temizler; ancak yeni satır karakterlerine (\r\n) dokunmaz.



  • Filtreleme Eksikliği: Oturum verilerini dosyaya yazan saveSession fonksiyonu, yamadan önce her veri girişinde filter_sessiondata (yeni satırları silen fonksiyon) çağrılacağını varsayıyordu ancak bazı giriş noktalarında bu filtreleme unutulmuştu.


  • Şifreleme Motoru Hatası (No-Ob Bypass): cPanel, oturum verilerini normalde şifreler. Ancak oturum çerezindeki (cookie) virgülden sonraki hex kısmı silinirse, sistem şifreleme anahtarı bulamaz ve verileri dosyaya ham metin (plain text) olarak yazar.

2. Zafiyet Nasıl Sömürülür? (Sömürü Zinciri)

Saldırgan, sunucuda root yetkisi elde etmek için şu adımları izler:

Adım 1: Ön-Yetkilendirme Oturumu Oluşturma Saldırgan, rastgele bilgilerle yanlış bir giriş denemesi yaparak sunucunun disk üzerinde bir oturum dosyası oluşturmasını sağlar ve bu oturuma ait çerezi (cookie) alır.


Adım 2: Veri Enjeksiyonu (The Injection) Saldırgan, aldığı çerezdeki virgül sonrasını silerek (no-ob yöntemi) şu payload'u içeren bir istek gönderir:


  • Payload: x\r\nhasroot=1\r\ntfa_verified=1\r\nsuccessful_internal_auth_with_timestamp=1777462149.


  • Bu "yeni satır" karakterleri sayesinde, hasroot=1 ve tfa_verified=1 gibi ifadeler oturum dosyasında ayrı birer yetki satırı gibi görünür.
Adım 3: Önbelleği Zehirleme (Cache Poisoning) cPanel normalde JSON önbelleğinden okur. Saldırgan, sunucuyu bir hataya (Token Denied) zorlayarak sistemi, manipüle edilmiş o ham dosyayı dosyadan tekrar okumaya zorlar. Bu sayede sahte root yetkileri sistemin ana belleğine (JSON Cache) işlenir.




Adım 4: Giriş Onayı Sistem, saldırganın enjekte ettiği successful_internal_auth_with_timestamp değerini görünce, gerçek şifreyi (/etc/shadow) kontrol etmeyi bırakır ve "AUTH_OK" (giriş başarılı) yanıtını döndürerek root panelini açar.


ANLAMAYAN ARKADAŞA ANLATAYIM

Adım 1: Hedef Belirleme ve İlk Oturumu Alış

Saldırgan, önce sunucuda sahte bir oturum (session) oluşturmak zorundadır.

  • İstek: user=root&pass=yanlis_sifre ile login sayfasına bir POST isteği atar.
  • Sonuç: Sunucu girişi reddeder ama arka planda bir oturum dosyası oluşturur ve bize şu çerezi verir: whostmgrsession=:ABC_123,hex_anahtari

Adım 2: Savunmayı Devre Dışı Bırakma (The Bypass)

Sistem, verileri yazarken şifrelemek ister. Biz bu şifreleme motorunu (encoder) çerezdeki virgül sonrasını silerek devre dışı bırakıyoruz.

  • Yeni Çerez: whostmgrsession=:ABC_123 (Virgülden sonrası silindi).
  • Mantık: Sistem "anahtar yok" diyerek verileri ham metin olarak yazmaya başlar.

Adım 3: Zehirli Komutun (Payload) Gönderilmesi

Hacker, sisteme Basic Authentication üzerinden bir istek gönderir. Şifre kısmına ise alt alta satırlar ekleyen şu payload'u koyar:

  • Ham Payload: herhangi_bir_sifre\nhasroot=1\ntfa_verified=1\nsuccessful_internal_auth_with_timestamp=1777462149
Sistem bunu dosyaya yazdığında, dosya aynen şöyle görünür:

Plaintext

user=root
pass=herhangi_bir_sifre
hasroot=1
tfa_verified=1
successful_internal_auth_with_timestamp=1777462149

Gördüğün gibi, bizim eklediğimiz satırlar dosyanın orijinal ayarları gibi görünmeye başladı.

Adım 4: Sistemin Beynini Yıkama (Cache Poisoning)

cPanel hızı sevdiği için verileri RAM'de (Önbellek) tutar. Bizim dosyadaki değişikliği görmesi için onu bir hataya zorlarız (yanlış bir token göndererek). Sistem hata verince, "Dosyayı baştan okumalıyım" der ve bizim manipüle ettiğimiz dosyayı okuyup belleğe yazar.

Adım 5: Şah Mat (Access Granted)

Saldırgan şimdi herhangi bir admin sayfasına (örneğin /scripts2/listaccts) girmek ister. cPanel'in güvenlik motoru oturuma bakar ve şunu görür:

  • successful_internal_auth_with_timestamp mevcut!
İşlem Tamam: Dosyada paylaştığın kod bloğunda gördüğümüz gibi:

return $Cpanel::Server::AUTH_OK, 0; # <-- /etc/shadow never consulted
Sistem, "Bu kullanıcı zaten onaylanmış, şifresini kontrol etmeme gerek yok" diyerek saldırgana root yetkisiyle kapıyı açar.


3. Zafiyet Nasıl Kapatıldı?

cPanel mühendisleri, bu sızıntıyı durdurmak için kod üzerinde köklü değişiklikler yaptı:


  • Zorunlu Filtreleme: saveSession fonksiyonunun içine filter_sessiondata çağrısı doğrudan eklendi. Artık hangi kapıdan gelirse gelsin, oturum verisi kaydedilmeden önce tüm yeni satır karakterleri (\r\n) otomatik olarak silinir.



  • Encoder Garantisi: Eğer oturumda bir şifreleme anahtarı (ob) yoksa, sistem artık veriyi boş bırakmak yerine 'no-ob:' etiketiyle birlikte hex_encode_only (onaltılık kodlama) kullanarak yazar. Bu, enjekte edilen karakterlerin dosya yapısını bozmasını imkansız kılar.



  • Patçli Versiyonlar: Zafiyet aşağıdaki ve sonraki sürümlerde tamamen kapatılmıştır:
    • 110.0.97
    • 118.0.63
    • 126.0.54
    • 132.0.29
    • 134.0.20
    • 136.0.5


Öneri: Sistem yöneticileri sunucularını acilen bu sürümlere yükseltmelidir; aksi takdirde sunucu, şifre gerektirmeyen bu sömürü zincirine karşı tamamen savunmasızdır.

Bu https://spyhackerz.org/ için hazırlanmıştır
 
💬 SpyHackerz Telegram — Anlık tartışmalar ve duyurular için katıl
istismar hala aktif gencolar githubda zibilyontane paylaşım var 2 - 3 hafta önce yayınlanmış bir poc

image.png
1778583512833.png
 
💬 SpyHackerz Telegram — Anlık tartışmalar ve duyurular için katıl
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.

Users who are viewing this thread

133,278Konular
3,283,829Mesajlar
319,850Kullanıcılar
albay.0Son Üye
Üst Alt