İçindekiler
PHP2Shell, PHP'nin kendisindeki iki kritik açığa verilen ad: CVE-2026-109618 ve CVE-2026-109619. İkisi de kimlik doğrulaması gerektirmeden uzaktan kod çalıştırmaya imkân veriyor ve CVSS v4.0 ölçeğinde 9,2 puana sahip. Bu rehber, kendi sunucusunu veya hosting hesabını yönetenler için ne yapılması gerektiğini sırasıyla anlatıyor: sürümü öğrenme, güncelleme, geçici önlem ve saldırı belirtilerini kontrol etme. Açığın haber özeti için PHP2Shell haberimize bakabilirsiniz.
PHP2Shell nedir, ne yapar?
İki açık da web isteği karşılayan PHP süreçlerinde çalışıyor ve saldırganın yalnızca HTTP isteği göndermesi yeterli oluyor.
- CVE-2026-109618: PHP bellek yetersizliği nedeniyle istek verisini yarım hazırladığında, temizlik aşamasında bu yarım veri geçerliymiş gibi işleniyor ve kod çalıştırmaya yol açabiliyor.
- CVE-2026-109619: PHP, istek durumunu ait olduğu bellek serbest bırakıldıktan sonra da tutuyor. Aynı süreç sonraki isteği alınca bu bayat veri okunuyor; sonuç bellek sızması ve kod çalıştırma olabiliyor.
Saldırgan, web sunucusunun çalıştığı kullanıcının yetkileriyle kod çalıştırır. Bellek sızması yoluyla parola, token, API anahtarı ve sertifika gibi veriler de ele geçirilebilir. Apache mod_php kullanan sunucularda saldırı, uygulama kodu çalışmadan önce tetiklenebiliyor; ama PHP-FPM, php-cgi ve LiteSpeed dahil PHP'nin web isteği karşıladığı tüm yapılar risk altında.
Açık PHP'nin içinde olduğu için WordPress eklentilerini veya temanızı güncellemek tek başına korumaz. Çözüm, PHP'nin kendisini düzeltilmiş bir sürüme getirmektir.
Hangi sürüme güncellemelisiniz?
| Kullandığınız dal | Düzeltilmiş sürüm |
|---|---|
| PHP 8.5 | 8.5.12 veya sonrası |
| PHP 8.4 | 8.4.27 veya sonrası |
| PHP 8.3 | 8.3.36 veya sonrası |
| PHP 8.2 | 8.2.35 veya sonrası |
| PHP 8.1 ve öncesi | Resmî destek dışı. Desteklenen bir dala geçin. |
PHP 8.1 ve altı sürümler için resmî yama beklemeyin: PHP ekibi 7.4, 8.0 ve 8.1 için yalnızca kaynaktan derleyenlere yönelik asgari yama dosyaları yayınlasa da bu sürümleri internete açık kullanmak önerilmiyor. Mümkünse güncel 8.5.x dalına geçip uygulamanızı test edin.
1. PHP sürümünüzü öğrenin
Komut satırında gördüğünüz sürüm ile web sitenizi çalıştıran sürüm farklı olabilir; bir sunucuda birden fazla PHP sürümü kurulu olması yaygındır.
php -v
# PHP-FPM sürümleri (Debian/Ubuntu)
ls /usr/sbin | grep php-fpm
# cPanel / CloudLinux
ls /opt/cpanel | grep ea-php
ls /opt/alt | grep php
Paylaşımlı hosting kullanıyorsanız kontrol panelinizdeki PHP sürüm seçicisine bakın. Orada 8.1 veya daha eski bir sürüm seçiliyse hosting sağlayıcınızın desteklediği güncel bir sürüme geçin.
2. PHP'yi güncelleyin
Komutlar dağıtımınıza ve PHP'yi nereden kurduğunuza göre değişir. Önce yedek alın, sonra güncelleyin ve servisi yeniden başlatın. Dağıtım paketleri düzeltmeyi sürüm numarasını değiştirmeden de taşıyabilir; bu yüzden sonuçta sürüm numarasına ek olarak paketin değişiklik notuna da bakın.
Debian ve Ubuntu
sudo apt update
sudo apt install --only-upgrade 'php*'
sudo systemctl restart php8.3-fpm # kullandığınız sürüme göre
sudo systemctl restart apache2 # veya nginx
AlmaLinux, Rocky Linux ve RHEL
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm
sudo systemctl restart httpd # veya nginx
Üçüncü taraf depolar kullanıyorsanız (ör. Remi) güncellemenin depoya ulaşmış olduğundan emin olun; gönüllülerce yürütülen depolar yayın gününde hazır olmayabilir.
cPanel ve CloudLinux
Bu sistemlerde PHP paketlerini sağlayıcı yayınlar. WHM'de Software > EasyApache 4 ve sistem güncellemeleriyle ea-php paketlerini, CloudLinux kullanıyorsanız alt-php paketlerini güncelleyin. Sağlayıcınız yamalı paketi henüz yayınlamadıysa geçici önlem bölümündeki adımları uygulayın.
Docker
docker pull php:8.3-fpm
docker compose build --pull
docker compose up -d
Kullandığınız imaj etiketinin düzeltilmiş sürüme işaret ettiğini docker run --rm php:8.3-fpm php -v ile doğrulayın.
Güncellemeyi doğrulayın
apt changelog php8.3-fpm | grep -i "CVE-2026-1096"
# RHEL ailesi:
rpm -q --changelog php-fpm | grep -i "CVE-2026-1096"
Çıktıda CVE-2026-109618 ve CVE-2026-109619 geçiyorsa paket düzeltmeyi içeriyor demektir. Doğrulamayı yaptıktan sonra PHP süreçlerinin yeniden başlatıldığından emin olun; eski süreçler güncellemeden önceki kodla çalışmaya devam eder.
3. Hemen güncelleyemiyorsanız geçici önlemler
php.iniiçindesession.upload_progress.enabled = Offayarlayın ve PHP-FPM ile web sunucusunu yeniden başlatın. Bu, bilinen saldırı yollarını kapatır ama tam çözüm değildir.- Bir rapora göre PHP 8.5'te ayrıca
fatal_error_backtraces = 0ayarı da riski azaltıyor; yine de hiçbir ayar güncellemenin yerini tutmaz. - Güncelleyemediğiniz eski PHP'yi internete açık bırakmayın. VPN veya web uygulama güvenlik duvarı (WAF) arkasına alın.
- Mümkünse kritik sitelerde bakım sayfasına geçmeyi değerlendirin. CISA, güncellenemeyen sistemlerin yamaya kadar çevrimdışı alınmasını öneriyor.
4. Saldırıya uğrayıp uğramadığınızı kontrol edin
Açığa karşı henüz kesin saldırı göstergeleri (IOC) paylaşılmadı, ama davranışlar belli. Şunlara bakın:
- PHP işçisinin veya web sunucusunun (
php-fpm,php-cgi,httpd,apache2)sh,bash,python,perl,curl,wgetveyancbaşlatması. - Web sunucusundan çalıştırılmış
whoami,id,uname -agibi keşif komutları. - Web dizininde yeni veya değiştirilmiş PHP dosyaları (webshell), yeni cron görevleri ve yeni kullanıcı hesapları.
ps -eo user,ppid,pid,cmd --forest | grep -E "php-fpm|httpd|apache2" -A2
find /var/www -name "*.php" -mtime -3
crontab -l; ls -la /etc/cron.d
Şüpheli bir durum görürseniz sunucuyu ağdan ayırın, web sunucusu ve PHP günlüklerini silmeden saklayın ve parolaları, API anahtarlarını ve token'ları değiştirin. Bellek sızması bu verilerin ele geçmiş olabileceği anlamına gelir.
Kontrol listesi
- Sunucudaki tüm PHP sürümlerini ve kontrol panelinin kullandığı PHP'yi listeleyin.
- Her biri için düzeltilmiş sürüme geçin; desteklenmeyen sürümleri kaldırın veya güncelleyin.
- PHP-FPM, Apache ve Nginx servislerini yeniden başlatın.
- Paket değişiklik notunda CVE numaralarını doğrulayın.
- Web dizininde yeni PHP dosyası, cron ve kullanıcı kontrolü yapın.
- Güncellemeden sonra sitenizi ve uygulamanızı test edin.
Sık sorulan sorular
Sitem WordPress, açık beni etkiler mi?
Açık WordPress'te değil PHP'de. WordPress kullanan bir sitenin bulunduğu sunucudaki PHP düzeltilmediyse site de risk altındadır; güvenlik firmaları WordPress, Drupal ve Joomla üzerinde sömürüyü göstermiştir.
Yalnızca mod_php mi etkileniyor?
Hayır. En kolay sömürü mod_php'de gösterildi, ama PHP'nin web isteği karşıladığı PHP-FPM, php-cgi, FrankenPHP ve LiteSpeed gibi yapılar da risk altında.
Güncelleme sitemi bozar mı?
Bunlar güvenlik sürümleri olduğundan aynı dalın içinde kalmak genellikle uyumluluk sorunu çıkarmaz. Yine de yedek alın ve güncellemeden sonra sitenizi test edin.
Fiberserver'da durum
Fiberserver hosting sunucularında PHP güncellemeleri uygulandı. cPanel web hosting müşterilerimizin ek işlem yapmasına gerek yok; yalnızca hesabınızda güncel bir PHP dalı seçili olsun. VDS ve dedicated sunucularda PHP yönetimi size ait olduğu için yukarıdaki adımları uygulamanız gerekir. Sunucu güvenliğinin genel çerçevesi için VDS güvenliği rehberimize göz atın; takıldığınız bir nokta olursa destek talebi açabilirsiniz.

Yorumlar0
Henüz Yorum Yok
İlk düşüncenizi paylaşan siz olun.
Yorum bırakmak için lütfen giriş yapın veya kaydolun.