PHP2Shell Açığı Nedir, Nasıl Kapatılır? CVE-2026-109618 ve CVE-2026-109619 Adım Adım Rehber
PHP2Shell (CVE-2026-109618, CVE-2026-109619), PHP'de giriş gerektirmeyen uzaktan kod çalıştırma açığıdır. Etkilenen sürümler, Ubuntu, Debian, AlmaLinux ve kontrol panellerinde güncelleme adımları, geçici önlemler ve ele geçirilme belirtileri bu rehberde.
Batuhan Çelikel6 dk okuma
Kısa cevap: PHP2Shell, PHP'nin kendisinde bulunan ve saldırganın giriş yapmadan, tek bir web isteğiyle sunucuda kod çalıştırmasına izin verebilen iki kritik açığın (CVE-2026-109618 ve CVE-2026-109619) ortak adıdır. Açığı kapatmanın tek tam yolu PHP'yi 8.5.12, 8.4.27, 8.3.36 ya da 8.2.35 sürümüne (ya da işletim sisteminizin bu düzeltmeyi içeren paketine) güncellemek ve ardından bütün PHP süreçlerini yeniden başlatmaktır. WordPress, Laravel ya da eklenti güncellemesi bu açığı kapatmaz.
Bu rehber 23 Ekim 2026 itibarıyla PHP'nin resmi güvenlik duyurusuna dayanır. Sunucunuz ister bizde ister başka bir sağlayıcıda olsun, aşağıdaki adımları uygulayabilir, yapamadığınız noktada bizden destek alabilirsiniz.
PHP2Shell nedir?
PHP geliştirici ekibi 21 Ekim 2026'da iki kritik güvenlik açığı için acil güncelleme yayımladı. Açıkların ayrıntıları planlanan duyurudan bir gün önce, 20 Ekim'de internete sızdı ve güvenlik topluluğu bu ikiliye PHP2Shell adını verdi. İki açığın da önem puanı CVSS v4.0 ölçeğinde 9,2 (kritik).
| Açık | Kısa açıklama | Etki |
|---|---|---|
| CVE-2026-109618 | Bellek yetersizliği (OOM) PHP'yi istek verisi yarım hazırlanmışken kesebiliyor; temizlik kodu bu bozuk veriyi geçerli sanıyor | Uzaktan kod çalıştırma |
| CVE-2026-109619 | Bir isteğe ait iç durum, belleği serbest bırakıldıktan sonra da yaşıyor; aynı PHP işçisinin sonraki isteği bu eski veriyi kullanabiliyor | Uzaktan kod çalıştırma |
PHP ekibine göre en yüksek risk Apache mod_php kurulumlarında: kimliği doğrulanmamış tek bir istekle, uygulama kodu daha çalışmadan saldırının tetiklenebildiği gösterildi. Güvenlik araştırmacıları açığın WordPress, Drupal ve Joomla sitelerinde de kullanılabildiğini gösterdi; bazı güvenlik firmaları gerçek saldırı girişimleri gözlemlediğini bildirdi.
Hangi sunucular etkileniyor?
Web isteklerine yanıt veren her PHP kurulumu risk altında:
- PHP-FPM (Nginx ya da Apache ile)
- Apache mod_php
- php-cgi
- LiteSpeed ve FrankenPHP
Yalnız komut satırında (CLI) betik çalıştıran ve web isteği almayan kurulumlar doğrudan bu saldırı yolunda değildir, ama aynı sunucuda web tarafı da varsa güncelleme yine gereklidir.
Düzeltilmiş sürümler:
| PHP dalı | Güvenli sürüm |
|---|---|
| 8.5 | 8.5.12 ve üzeri |
| 8.4 | 8.4.27 ve üzeri |
| 8.3 | 8.3.36 ve üzeri |
| 8.2 | 8.2.35 ve üzeri |
| 8.1 ve daha eski | Resmi sürüm yok; işletim sisteminizin geri taşınmış (backport) güvenlik paketi ya da desteklenen sürüme geçiş |
Sunucumda açık var mı? Nasıl kontrol ederim?
Önce hangi PHP sürümünü ve hangi çalışma biçimini kullandığınızı öğrenin:
php -v
php-fpm8.3 -v
apachectl -M 2>/dev/null | grep -i php
Linux dağıtımları düzeltmeyi çoğu zaman sürüm numarasını değiştirmeden, kendi paket sürümüyle yayımlar. Bu yüzden php -v çıktısında 8.3.36 görmüyorsanız paketin güvenlik notlarına bakın:
apt changelog php8.3-fpm | head -n 20
dnf updateinfo list --security | grep -i php
Çıktıda CVE-2026-109618 ya da CVE-2026-109619 geçiyorsa düzeltme paketinizde var demektir.
PHP2Shell nasıl kapatılır? Adım adım güncelleme
Ubuntu ve Debian
sudo apt update
sudo apt upgrade
sudo systemctl restart php8.3-fpm
sudo systemctl restart apache2
php8.3 yerine kullandığınız sürümü yazın. Nginx ile PHP-FPM kullanıyorsanız Apache satırını atlayın. Sunucunuzda birden fazla PHP sürümü varsa her birinin FPM hizmetini ayrı ayrı yeniden başlatın.
AlmaLinux, Rocky Linux ve RHEL ailesi
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm
sudo systemctl restart httpd
Kontrol paneli kullanıyorsanız
cPanel, Plesk, CloudPanel, HestiaCP gibi panellerde PHP paketleri panelin kendi güncelleme düzeniyle gelir. Panelin sistem güncellemesini çalıştırın, sitenizin kullandığı PHP sürümünün güncellendiğini panelden doğrulayın ve PHP hizmetlerini yeniden başlatın. Panel eski bir PHP dalını (7.4, 8.0, 8.1) seçili tutuyorsa sitenizi desteklenen bir dala taşımayı planlayın.
Docker kullanıyorsanız
Resmi PHP imajlarını güncel etiketle yeniden çekin, imajınızı yeniden oluşturun ve konteynerleri yeniden başlatın. Çalışan eski konteyner yeni imajla değiştirilmedikçe açık sürer.
Windows (IIS) kullanıyorsanız
Güncel sürümü php.net indirme sayfasından alın, eski PHP klasörünü yenisiyle değiştirin ve IIS uygulama havuzunu yeniden başlatın.
Önemli: Güncellemeden sonra çalışan bütün PHP işçilerinin yeniden başlaması gerekir. CVE-2026-109619 doğrudan işçi süreçlerinin taşıdığı durumla ilgilidir; paket güncellenip hizmet yeniden başlatılmazsa sunucu eski kodla çalışmaya devam eder.
Hemen güncelleyemiyorsanız ne yapmalısınız?
PHP ekibinin açık uyarısı şu: güncelleme dışında tam koruma sağlayan bir ayar yok. Yine de güncellemeyi planlarken riski azaltmak için:
php.inidosyasındasession.upload_progress.enabled = 0ayarını yapın ve bütün PHP işçilerini yeniden başlatın. Bu ayarıini_set()ya da.user.iniile değil, isteğin işlenmesinden önce uygulanan php.ini ya da FPM havuz ayarıyla yapın.- Dosya yüklemesi kullanmayan sitelerde
post_max_size = 8M, yükleme gerekiyorsa32Mgibi düşük bir değer kullanın;upload_max_filesizebunun altında kalsın. - PHP 8.5 kullanıyorsanız
fatal_error_backtraces=0ayarını yapın. - Web uygulama güvenlik duvarınızda (WAF) istek boyutu, alan sayısı ve başlık sayısı için sınır tanımlayın.
Bu önlemler bilinen saldırı yollarının bir kısmını keser, açığı kapatmaz. Güncellemeyi en kısa sürede yapın.
Sunucum ele geçirilmiş olabilir mi? Belirtiler
Bazı güvenlik raporlarına göre saldırı girişimleri açık duyurulmadan önce başladı. Bu yüzden güncellemeden sonra sunucunuzu kontrol edin:
- Web dizininde tanımadığınız, yakın tarihli
.phpdosyaları (özellikle yükleme ve önbellek klasörlerinde) - Uygulamanızda (WordPress yönetici listesi gibi) sizin açmadığınız yeni kullanıcılar
crontab -lve/etc/cron.daltında beklenmedik zamanlanmış görevler- Açıklanamayan yüksek işlemci kullanımı ya da sunucudan dışarıya giden yoğun trafik
- Değişmiş
.htaccessdosyaları ve tanımadığınız yönlendirmeler
Bunlardan birini görürseniz sunucuyu temiz bir yedekten geri döndürmek, parolaları ve uygulama anahtarlarını değiştirmek genellikle en güvenli yoldur. Yalnız şüpheli dosyayı silmek, saldırganın bıraktığı başka arka kapıları temizlemez.
Eski PHP sürümüne bağlı siteler için çözüm
Birçok kurumsal site ve eski yazılım PHP 7.4 ya da 8.0 üzerinde çalışmaya devam ediyor; bu dallar PHP projesinden artık sürüm almıyor. PHP güvenlik ekibi 7.4, 8.0 ve 8.1 için yalnız kaynak koddan derleyenlere yönelik asgari yamalar yayımladı, ama kalıcı çözüm sitenizi desteklenen bir PHP sürümüne taşımaktır.
Yazılımınız yeni PHP sürümünde çalışmıyorsa (kaldırılmış fonksiyonlar, eski kütüphaneler, uyumsuz eklentiler) kodunuzu güncel PHP sürümleriyle uyumlu hale getirebiliriz. Uyumluluk çalışmasını önce bir test ortamında yapar, siteniz sorunsuz çalıştıktan sonra canlıya alırız.
Sunucunuz bizde olsun ya da olmasın destek veriyoruz
PHP2Shell için destek yalnız müşterilerimize değil, sunucusu başka bir sağlayıcıda olan işletmelere de açık:
- PHP güncellemesi ve yeniden başlatma: Linux ya da Windows sunucunuzda doğru paketleri güncelleyip PHP hizmetlerini yeniden başlatırız.
- Ele geçirilme kontrolü: Şüpheli dosya, kullanıcı ve zamanlanmış görev taraması yapar, bulguları size raporlarız.
- Eski PHP'den geçiş: Sitenizi ya da yazılımınızı güncel PHP sürümüne uyumlu hale getiririz.
- Taşıma: İsterseniz sitenizi güncel ve yönetilen bir altyapıya taşımayı ekibimiz yapar.
Müşterimizseniz panelinizdeki Destek bölümünden talep açın. Sunucunuz başka bir yerdeyse destek@sunucu.com.tr adresine sunucunuzu ve kullandığınız PHP sürümünü yazmanız yeterli; e-postanız destek talebine dönüşür ve ekibimiz en kısa sürede size döner.
Yeni bir sunucu kuracaksanız bulut sunucularımız ve güncellemeleri hazır gelen web sitesi sunucusu seçeneklerine göz atabilirsiniz.
Böyle açıklara karşı en güçlü sigorta: yedek
PHP2Shell gibi kritik açıklar düzenli olarak ortaya çıkar ve bazen yama yayımlanmadan kullanılmaya başlar. Sunucunuz ele geçirildiğinde en hızlı ve en güvenli dönüş yolu, sunucudan ayrı tutulan temiz bir yedektir. Bizdeki bulut sunucunuza günlük imaj yedeğini (7 gün geriye dönük) müşteri panelinden ekleyebilirsiniz; yedekleme seçeneklerinin tamamı Bulut Yedekleme sayfasında.
Bir sonraki kritik açıkta sorunu müşterinizden önce fark etmek için sunucu izleme ile işlemci, bellek, disk ve web sitesi erişimini 7/24 takip edebilir, sorun anında e-posta alabilirsiniz.
Sık sorulan sorular
PHP2Shell açığı WordPress sitemi etkiler mi?
Evet. Açık WordPress'te değil PHP'nin kendisinde olduğu için PHP ile çalışan her WordPress sitesi risk altındadır. WordPress'i ve eklentileri güncellemek açığı kapatmaz; sunucudaki PHP güncellenmeli ve PHP hizmetleri yeniden başlatılmalıdır.
Hangi PHP sürümleri güvenli?
PHP 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 ile bu dalların daha yeni sürümleri güvenlidir. İşletim sisteminizin düzeltmeyi farklı sürüm numarasıyla yayımlamış olabileceğini unutmayın; paketin güvenlik notlarında CVE-2026-109618 ve CVE-2026-109619 geçiyorsa düzeltme yüklüdür.
PHP 7.4 ya da 8.0 kullanıyorum, ne yapmalıyım?
Bu dallar PHP projesinden artık güncelleme almıyor. İşletim sisteminizin geri taşınmış güvenlik paketi varsa onu yükleyin, yoksa sitenizi desteklenen bir sürüme taşıyın. Yazılımınız yeni sürümde çalışmıyorsa uyumluluk çalışmasını biz yapabiliriz.
Paylaşımlı hosting kullanıyorum, ne yapabilirim?
Paylaşımlı hostingde PHP'yi sağlayıcınız günceller. Sağlayıcınızdan güncellemenin yapıldığını yazılı olarak teyit edin ve panelinizde sitenizin desteklenen bir PHP sürümünde çalıştığından emin olun.
Güncelleme sonrası sunucuyu yeniden başlatmak şart mı?
Sunucunun tamamını yeniden başlatmak gerekmez ama PHP-FPM, Apache ya da LiteSpeed gibi PHP'yi çalıştıran hizmetlerin mutlaka yeniden başlatılması gerekir. Aksi halde çalışan işçiler eski, açık kodla hizmet vermeye devam eder.
Sunucum başka bir sağlayıcıda, yine de yardım alabilir miyim?
Evet. Sunucunuz nerede olursa olsun PHP güncellemesi, ele geçirilme kontrolü ve eski PHP'den geçiş için destek veriyoruz. destek@sunucu.com.tr adresine yazmanız yeterli.
Kaynak
- PHP'nin resmi güvenlik duyurusu ve sürüm notları: php.net
- #PHP2Shell
- #PHP güvenlik açığı
- #CVE-2026-109618
- #CVE-2026-109619
- #PHP güncelleme
- #PHP-FPM
- #WordPress güvenliği
- #sunucu güvenliği
Yazar
Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları
sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.