Önemli [ACİL] cPanel & WHM Kritik Güvenlik Açığı (CVE-2026-41940) ve Çözüm Yolları

  • Konuyu Başlatan Konuyu Başlatan vProject
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 368

vProject

Bir Kömür Göründü Kaptanım!
Katılım
6 Şubat 2026
Mesajlar
138
Elmaslar
78
Puan
345
Yaş
21
Minecraft
Asmus1990

Discord:

asmus1990_

Selamlar,

Son günlerde cPanel ve WHM panellerini hedef alan, kimlik doğrulama (authentication) süreçlerini bypass ederek saldırganların panele yetkisiz erişim sağlamasına yol açan çok kritik bir zafiyet (CVE-2026-41940) tespit edildi.

Birçok hosting firması önlem amaçlı 2083 ve 2087 portlarını dış dünyaya geçici olarak kapattı. Eğer kendi sunucunuzu yönetiyorsanız, verilerinizin güvenliği için vakit kaybetmeden aşağıdaki adımları uygulamanız gerekiyor.

⚠️ Hangi Sürümler Risk Altında?​

Bu açık, aşağıdaki güncel sürümlerin altındaki tüm versiyonları etkilemektedir. Eğer sunucunuz bu sürümlerden birine sahip değilse risk altındasınız.

  • 11.110.0.97 ve üzeri
  • 11.118.0.63 ve üzeri
  • 11.126.0.54 ve üzeri
  • 11.132.0.29 ve üzeri
  • 11.134.0.20 ve üzeri
  • 11.136.0.5 ve üzeri

✅ Çözüm: Manuel Güncelleme (Force Upgrade)​

Lisansınız orijinalse veya lisans sağlayıcınız güncel sürümleri destekliyorsa, SSH üzerinden terminale bağlanarak aşağıdaki komutu "force" (zorlayarak) çalıştırmanız öneriliyor:

Bash
Kod:
/scripts/upcp --force

Kod:
/usr/local/cpanel/cpanel -V
/scripts/restartsrv_cpsrvd

Kod:
nano tarama_sessions.sh

Kod:
#!/bin/bash # Scan for compromised session files
SESSIONS_DIR="/var/cpanel/sessions" COMPROMISED=0
echo "[*] Scanning session files for injection indicators..."
for session_file in "$SESSIONS_DIR"/raw/*; do [ -f "$session_file" ] || continue session_name=$(basename "$session_file") # Check if this session is/was pre-auth preauth_file="$SESSIONS_DIR/preauth/$session_name" # IOC 0: Session has both token_denied AND cp_security_token and method=badpass origin (strong indicator of exploitation) # # token_denied is set by do_token_denied() in cpsrvd when a request # supplies an incorrect security token. cp_security_token is the # attacker-injected token value. This combination indicates: # # 1. Attacker injected a cp_security_token via newline payload # 2. Attacker attempted to use the injected token # 3. cpsrvd recorded the token mismatch (token_denied counter) # during the exploitation window before the session was # fully promoted # # In a legitimate session: # - token_denied is only present after a user-initiated # security token failure (rare, typically from expired bookmarks) # - It would never co-exist with a badpass origin AND an # attacker-controlled cp_security_token # # This IOC catches BOTH successful and failed exploitation attempts. if grep -q '^token_denied=' "$session_file" && \ grep -q '^cp_security_token=' "$session_file"; then # Extract values for triage context token_val=$(grep '^cp_security_token=' "$session_file" | head -1 | cut -d= -f2) denied_val=$(grep '^token_denied=' "$session_file" | head -1 | cut -d= -f2) origin=$(grep '^origin_as_string=' "$session_file" | head -1 | cut -d= -f2-) used=$(grep -a "$token_val" /usr/local/cpanel/logs/access_log | grep -m1 " 200 ") external_auth=$(grep '^successful_external_auth_with_timestamp=' "$session_file") # High confidence if origin is badpass (session was pre-auth) if grep -q '^origin_as_string=.*method=badpass' "$session_file"; then if [ -z "$external_auth" ] && [ -z "$used" ]; then echo "Found possible injected session file: $session_file" echo " - No sign of usage" else echo "[!] CRITICAL: Exploitation artifact - token_denied with injected cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Verdict: Session was pre-auth (badpass origin) with attacker-injected token" echo " - USED: $used" COMPROMISED=1 fi # Medium confidence but still suspicious for any session else echo "[!] WARNING: Suspicious session with token_denied + cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Review manually: may be legitimate token expiration or exploitation attempt" fi fi # IOC 1: Pre-auth session with authenticated attributes if [ -f "$preauth_file" ]; then if grep -qE '^successful_external_auth_with_timestamp=' "$session_file"; then echo "[!] CRITICAL: Injected session detected: $session_file" echo " - Contains 'successful_external_auth_with_timestamp' in pre-auth session" COMPROMISED=1 fi fi # IOC 2: Any session with tfa_verified but no valid origin if grep -q '^tfa_verified=1' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_form_login' "$session_file" && \ ! grep -q '^origin_as_string=.*method=create_user_session' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_auth_transfer' "$session_file"; then echo "[!] WARNING: Session with tfa_verified but suspicious origin: $session_file" COMPROMISED=1 fi # IOC 3: Password field containing newlines (corrupted session file) if grep -qP '^pass=.*\n.' "$session_file" 2>/dev/null; then echo "[!] CRITICAL: Multi-line pass value detected: $session_file" COMPROMISED=1 fi done
if [ "$COMPROMISED" -eq 0 ]; then    echo ""    echo "[+] No indicators of compromise found." else    echo ""    echo "[!] INDICATORS OF COMPROMISE DETECTED - IMMEDIATE ACTION REQUIRED"    echo "    1. Purge all affected sessions"    echo "    2. Force password reset for root and all WHM users"    echo "    3. Audit /var/log/wtmp and WHM access logs for unauthorized access"    echo "    4. Check for persistence mechanisms (cron, SSH keys, backdoors)" fi

Kod:
çalıştırmak için

chmod +x tarama_sessions.sh
sonrasında
./tarama_sessions.sh

Bu komut, cPanel'in en güncel ve yamalanmış sürümüne yükseltilmesini sağlayacaktır.

🛡️ Ekstra Güvenlik Önlemleri​

Güncelleme yapana kadar veya yaptıktan sonra ek koruma sağlamak adına şunları yapmanız kritik önem taşıyor:

  1. IP Sınırlaması: Eğer statik IP kullanıyorsanız, CSF (ConfigServer Security & Firewall) üzerinden 2083 ve 2087 portlarını sadece kendi IP adresinize izin verecek şekilde (Allow) düzenleyin.
  2. 2FA Kullanımı: Panel girişlerinde İki Faktörlü Kimlik Doğrulamayı mutlaka zorunlu hale getirin.
  3. Log Kontrolü: /usr/local/cpanel/logs/access_log dosyasını inceleyerek şüpheli giriş denemelerini kontrol edin.
Not: Güncelleme işlemi sırasında oluşabilecek kesinti veya hatalardan dolayı işlem yapmadan önce tam yedek (Full Backup) almanız tavsiye edilir. Sorumluluk kullanıcıya aittir; teknik bilginiz yetersizse hizmet aldığınız yerden destek isteyin.
 
Son düzenleme:
Açık hakkında verdiğiniz bilgilerden dolayı teşekkür ederiz.
 
Son düzenleme:
Selamlar,

Son günlerde cPanel ve WHM panellerini hedef alan, kimlik doğrulama (authentication) süreçlerini bypass ederek saldırganların panele yetkisiz erişim sağlamasına yol açan çok kritik bir zafiyet (CVE-2026-41940) tespit edildi.

Birçok hosting firması önlem amaçlı 2083 ve 2087 portlarını dış dünyaya geçici olarak kapattı. Eğer kendi sunucunuzu yönetiyorsanız, verilerinizin güvenliği için vakit kaybetmeden aşağıdaki adımları uygulamanız gerekiyor.

⚠️ Hangi Sürümler Risk Altında?​

Bu açık, aşağıdaki güncel sürümlerin altındaki tüm versiyonları etkilemektedir. Eğer sunucunuz bu sürümlerden birine sahip değilse risk altındasınız.

  • 11.110.0.97 ve üzeri
  • 11.118.0.63 ve üzeri
  • 11.126.0.54 ve üzeri
  • 11.132.0.29 ve üzeri
  • 11.134.0.20 ve üzeri
  • 11.136.0.5 ve üzeri

✅ Çözüm: Manuel Güncelleme (Force Upgrade)​

Lisansınız orijinalse veya lisans sağlayıcınız güncel sürümleri destekliyorsa, SSH üzerinden terminale bağlanarak aşağıdaki komutu "force" (zorlayarak) çalıştırmanız öneriliyor:

Bash
Kod:
/scripts/upcp --force<br>

Kod:
/usr/local/cpanel/cpanel -V
/scripts/restartsrv_cpsrvd

Kod:
nano tarama_sessions.sh

Kod:
#!/bin/bash # Scan for compromised session files
SESSIONS_DIR="/var/cpanel/sessions" COMPROMISED=0
echo "[*] Scanning session files for injection indicators..."
for session_file in "$SESSIONS_DIR"/raw/*; do [ -f "$session_file" ] || continue session_name=$(basename "$session_file") # Check if this session is/was pre-auth preauth_file="$SESSIONS_DIR/preauth/$session_name" # IOC 0: Session has both token_denied AND cp_security_token and method=badpass origin (strong indicator of exploitation) # # token_denied is set by do_token_denied() in cpsrvd when a request # supplies an incorrect security token. cp_security_token is the # attacker-injected token value. This combination indicates: # # 1. Attacker injected a cp_security_token via newline payload # 2. Attacker attempted to use the injected token # 3. cpsrvd recorded the token mismatch (token_denied counter) # during the exploitation window before the session was # fully promoted # # In a legitimate session: # - token_denied is only present after a user-initiated # security token failure (rare, typically from expired bookmarks) # - It would never co-exist with a badpass origin AND an # attacker-controlled cp_security_token # # This IOC catches BOTH successful and failed exploitation attempts. if grep -q '^token_denied=' "$session_file" && \ grep -q '^cp_security_token=' "$session_file"; then # Extract values for triage context token_val=$(grep '^cp_security_token=' "$session_file" | head -1 | cut -d= -f2) denied_val=$(grep '^token_denied=' "$session_file" | head -1 | cut -d= -f2) origin=$(grep '^origin_as_string=' "$session_file" | head -1 | cut -d= -f2-) used=$(grep -a "$token_val" /usr/local/cpanel/logs/access_log | grep -m1 " 200 ") external_auth=$(grep '^successful_external_auth_with_timestamp=' "$session_file") # High confidence if origin is badpass (session was pre-auth) if grep -q '^origin_as_string=.*method=badpass' "$session_file"; then if [ -z "$external_auth" ] && [ -z "$used" ]; then echo "Found possible injected session file: $session_file" echo " - No sign of usage" else echo "[!] CRITICAL: Exploitation artifact - token_denied with injected cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Verdict: Session was pre-auth (badpass origin) with attacker-injected token" echo " - USED: $used" COMPROMISED=1 fi # Medium confidence but still suspicious for any session else echo "[!] WARNING: Suspicious session with token_denied + cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Review manually: may be legitimate token expiration or exploitation attempt" fi fi # IOC 1: Pre-auth session with authenticated attributes if [ -f "$preauth_file" ]; then if grep -qE '^successful_external_auth_with_timestamp=' "$session_file"; then echo "[!] CRITICAL: Injected session detected: $session_file" echo " - Contains 'successful_external_auth_with_timestamp' in pre-auth session" COMPROMISED=1 fi fi # IOC 2: Any session with tfa_verified but no valid origin if grep -q '^tfa_verified=1' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_form_login' "$session_file" && \ ! grep -q '^origin_as_string=.*method=create_user_session' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_auth_transfer' "$session_file"; then echo "[!] WARNING: Session with tfa_verified but suspicious origin: $session_file" COMPROMISED=1 fi # IOC 3: Password field containing newlines (corrupted session file) if grep -qP '^pass=.*\n.' "$session_file" 2>/dev/null; then echo "[!] CRITICAL: Multi-line pass value detected: $session_file" COMPROMISED=1 fi done
if [ "$COMPROMISED" -eq 0 ]; then    echo ""    echo "[+] No indicators of compromise found." else    echo ""    echo "[!] INDICATORS OF COMPROMISE DETECTED - IMMEDIATE ACTION REQUIRED"    echo "    1. Purge all affected sessions"    echo "    2. Force password reset for root and all WHM users"    echo "    3. Audit /var/log/wtmp and WHM access logs for unauthorized access"    echo "    4. Check for persistence mechanisms (cron, SSH keys, backdoors)" fi

Kod:
çalıştırmak için

chmod +x tarama_sessions.sh
sonrasında
./tarama_sessions.sh

Bu komut, cPanel'in en güncel ve yamalanmış sürümüne yükseltilmesini sağlayacaktır.

🛡️ Ekstra Güvenlik Önlemleri​

Güncelleme yapana kadar veya yaptıktan sonra ek koruma sağlamak adına şunları yapmanız kritik önem taşıyor:

  1. IP Sınırlaması: Eğer statik IP kullanıyorsanız, CSF (ConfigServer Security & Firewall) üzerinden 2083 ve 2087 portlarını sadece kendi IP adresinize izin verecek şekilde (Allow) düzenleyin.
  2. 2FA Kullanımı: Panel girişlerinde İki Faktörlü Kimlik Doğrulamayı mutlaka zorunlu hale getirin.
  3. Log Kontrolü: /usr/local/cpanel/logs/access_log dosyasını inceleyerek şüpheli giriş denemelerini kontrol edin.
Not: Güncelleme işlemi sırasında oluşabilecek kesinti veya hatalardan dolayı işlem yapmadan önce tam yedek (Full Backup) almanız tavsiye edilir. Sorumluluk kullanıcıya aittir; teknik bilginiz yetersizse hizmet aldığınız yerden destek isteyin.
Yardımın için teşekkürler
 
Selamlar,

Son günlerde cPanel ve WHM panellerini hedef alan, kimlik doğrulama (authentication) süreçlerini bypass ederek saldırganların panele yetkisiz erişim sağlamasına yol açan çok kritik bir zafiyet (CVE-2026-41940) tespit edildi.

Birçok hosting firması önlem amaçlı 2083 ve 2087 portlarını dış dünyaya geçici olarak kapattı. Eğer kendi sunucunuzu yönetiyorsanız, verilerinizin güvenliği için vakit kaybetmeden aşağıdaki adımları uygulamanız gerekiyor.

⚠️ Hangi Sürümler Risk Altında?​

Bu açık, aşağıdaki güncel sürümlerin altındaki tüm versiyonları etkilemektedir. Eğer sunucunuz bu sürümlerden birine sahip değilse risk altındasınız.

  • 11.110.0.97 ve üzeri
  • 11.118.0.63 ve üzeri
  • 11.126.0.54 ve üzeri
  • 11.132.0.29 ve üzeri
  • 11.134.0.20 ve üzeri
  • 11.136.0.5 ve üzeri

✅ Çözüm: Manuel Güncelleme (Force Upgrade)​

Lisansınız orijinalse veya lisans sağlayıcınız güncel sürümleri destekliyorsa, SSH üzerinden terminale bağlanarak aşağıdaki komutu "force" (zorlayarak) çalıştırmanız öneriliyor:

Bash
Kod:
/scripts/upcp --force

Kod:
/usr/local/cpanel/cpanel -V
/scripts/restartsrv_cpsrvd

Kod:
nano tarama_sessions.sh

Kod:
#!/bin/bash # Scan for compromised session files
SESSIONS_DIR="/var/cpanel/sessions" COMPROMISED=0
echo "[*] Scanning session files for injection indicators..."
for session_file in "$SESSIONS_DIR"/raw/*; do [ -f "$session_file" ] || continue session_name=$(basename "$session_file") # Check if this session is/was pre-auth preauth_file="$SESSIONS_DIR/preauth/$session_name" # IOC 0: Session has both token_denied AND cp_security_token and method=badpass origin (strong indicator of exploitation) # # token_denied is set by do_token_denied() in cpsrvd when a request # supplies an incorrect security token. cp_security_token is the # attacker-injected token value. This combination indicates: # # 1. Attacker injected a cp_security_token via newline payload # 2. Attacker attempted to use the injected token # 3. cpsrvd recorded the token mismatch (token_denied counter) # during the exploitation window before the session was # fully promoted # # In a legitimate session: # - token_denied is only present after a user-initiated # security token failure (rare, typically from expired bookmarks) # - It would never co-exist with a badpass origin AND an # attacker-controlled cp_security_token # # This IOC catches BOTH successful and failed exploitation attempts. if grep -q '^token_denied=' "$session_file" && \ grep -q '^cp_security_token=' "$session_file"; then # Extract values for triage context token_val=$(grep '^cp_security_token=' "$session_file" | head -1 | cut -d= -f2) denied_val=$(grep '^token_denied=' "$session_file" | head -1 | cut -d= -f2) origin=$(grep '^origin_as_string=' "$session_file" | head -1 | cut -d= -f2-) used=$(grep -a "$token_val" /usr/local/cpanel/logs/access_log | grep -m1 " 200 ") external_auth=$(grep '^successful_external_auth_with_timestamp=' "$session_file") # High confidence if origin is badpass (session was pre-auth) if grep -q '^origin_as_string=.*method=badpass' "$session_file"; then if [ -z "$external_auth" ] && [ -z "$used" ]; then echo "Found possible injected session file: $session_file" echo " - No sign of usage" else echo "[!] CRITICAL: Exploitation artifact - token_denied with injected cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Verdict: Session was pre-auth (badpass origin) with attacker-injected token" echo " - USED: $used" COMPROMISED=1 fi # Medium confidence but still suspicious for any session else echo "[!] WARNING: Suspicious session with token_denied + cp_security_token: $session_file" echo " - cp_security_token=$token_val" echo " - token_denied=$denied_val" echo " - origin=$origin" echo " - Review manually: may be legitimate token expiration or exploitation attempt" fi fi # IOC 1: Pre-auth session with authenticated attributes if [ -f "$preauth_file" ]; then if grep -qE '^successful_external_auth_with_timestamp=' "$session_file"; then echo "[!] CRITICAL: Injected session detected: $session_file" echo " - Contains 'successful_external_auth_with_timestamp' in pre-auth session" COMPROMISED=1 fi fi # IOC 2: Any session with tfa_verified but no valid origin if grep -q '^tfa_verified=1' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_form_login' "$session_file" && \ ! grep -q '^origin_as_string=.*method=create_user_session' "$session_file" && \ ! grep -q '^origin_as_string=.*method=handle_auth_transfer' "$session_file"; then echo "[!] WARNING: Session with tfa_verified but suspicious origin: $session_file" COMPROMISED=1 fi # IOC 3: Password field containing newlines (corrupted session file) if grep -qP '^pass=.*\n.' "$session_file" 2>/dev/null; then echo "[!] CRITICAL: Multi-line pass value detected: $session_file" COMPROMISED=1 fi done
if [ "$COMPROMISED" -eq 0 ]; then    echo ""    echo "[+] No indicators of compromise found." else    echo ""    echo "[!] INDICATORS OF COMPROMISE DETECTED - IMMEDIATE ACTION REQUIRED"    echo "    1. Purge all affected sessions"    echo "    2. Force password reset for root and all WHM users"    echo "    3. Audit /var/log/wtmp and WHM access logs for unauthorized access"    echo "    4. Check for persistence mechanisms (cron, SSH keys, backdoors)" fi

Kod:
çalıştırmak için

chmod +x tarama_sessions.sh
sonrasında
./tarama_sessions.sh

Bu komut, cPanel'in en güncel ve yamalanmış sürümüne yükseltilmesini sağlayacaktır.

🛡️ Ekstra Güvenlik Önlemleri​

Güncelleme yapana kadar veya yaptıktan sonra ek koruma sağlamak adına şunları yapmanız kritik önem taşıyor:

  1. IP Sınırlaması: Eğer statik IP kullanıyorsanız, CSF (ConfigServer Security & Firewall) üzerinden 2083 ve 2087 portlarını sadece kendi IP adresinize izin verecek şekilde (Allow) düzenleyin.
  2. 2FA Kullanımı: Panel girişlerinde İki Faktörlü Kimlik Doğrulamayı mutlaka zorunlu hale getirin.
  3. Log Kontrolü: /usr/local/cpanel/logs/access_log dosyasını inceleyerek şüpheli giriş denemelerini kontrol edin.
Not: Güncelleme işlemi sırasında oluşabilecek kesinti veya hatalardan dolayı işlem yapmadan önce tam yedek (Full Backup) almanız tavsiye edilir. Sorumluluk kullanıcıya aittir; teknik bilginiz yetersizse hizmet aldığınız yerden destek isteyin.
Elinize Sağlık Volex Bey böyle önemli bir bilgiyi paylaştığınız için
 

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst