İçeriğe atla
Rehber

PHP2Shell: Kritik PHP Açıkları İçin 5 Adımlık Kontrol Listesi

CVE-2026-109618 ve CVE-2026-109619 (CVSS 9.2) için bugün yapılacaklar: envanter, yama ve yeniden başlatma, ayırma, WAF, log kontrolü. Yamalı sürümler listede.

Oğuzhan Gerçek··6 dk okuma
PHP2Shell: Kritik PHP Açıkları İçin 5 Adımlık Kontrol Listesi

Kısa cevap: PHP projesi 21 Ekim 2026'da, kamuoyunda PHP2Shell diye anılan iki kritik açığı (CVE-2026-109618 ve CVE-2026-109619, ikisi de CVSS 9.2) kapatan güvenlik sürümlerini yayımladı: 8.5.12, 8.4.27, 8.3.36 ve 8.2.35. Açıklar, kimlik doğrulaması olmadan tek bir HTTP isteğiyle sunucuda kod çalıştırmaya izin veriyor ve istek uygulama koduna ulaşmadan tetikleniyor; bu yüzden uygulamadaki giriş ekranı sizi korumuyor. Saldırı denemeleri başladı, dört AB ülkesi ve Kanada bazı kamu sitelerini geçici olarak kapattı. Bugün yapılacak beş iş: PHP envanterini çıkarın, yamayı uygulayıp PHP'yi yeniden başlatın, yamalanamayan sistemi internetten ayırın, WAF kuralını ara çözüm olarak açın ve 17 Ekim'den bu yana logları kontrol edin.

Ne oldu?

Help Net Security'nin aktarımıyla PHP ekibi 21 Ekim 2026'da acil güvenlik sürümlerini yayımladı ve bütün kullanıcıları hemen güncellemeye çağırdı. İki açığın teknik özü şu: CVE-2026-109618'de bellek yetersizliği durumu, istek verisi yarım hazırlanmışken PHP'yi kesiyor ve temizlik aşaması geçersiz veriyi geçerli sayıyor; CVE-2026-109619'da ise bir isteğe ait iç durum, belleği serbest bırakıldıktan sonra hayatta kalıp aynı işçi (worker) üzerindeki sonraki istekte kullanılabiliyor. Datadog Security Labs açıklamadan önce çalışan bir istismar üretti: kimlik doğrulamasız tek bir HTTP POST isteği, ASLR'ı aşarak kod çalıştırıyor; uygulama katmanındaki kimlik doğrulama koruma sağlamıyor, çünkü PHP isteği uygulama koduna ulaşmadan işliyor.

Zaman çizgisi:

  • 17 Ekim: Help Net Security'nin aktardığına göre Amazon'un tuzak sistemi (MadPot), kamuoyuna açıklamadan dört gün önce bir istismar denemesi kaydetti.
  • 20 Ekim: Açıklar sosyal medyada sızdı. The Next Web'e göre AB kurumlarının siber güvenlik ekibi CERT-EU, 2026-018 numaralı duyurusunda hemen yamalayamayan kurumlara internete açık uygulamaları kamu ağlarından ayırmayı, gerekirse siteyi kapatmayı tavsiye etti; Avustralya ACSC benzer bir uyarı yaptı.
  • 21 Ekim: Yamalar yayımlandı; PHP ekibi yayın tarihini sızıntı üzerine bir gün öne çekti. watchTowr aynı gün tuzak ağında istismar denemeleri gözlemledi. Engadget'ın Reuters'a dayanarak aktardığına göre Hollanda, Danimarka, Fransa ve Finlandiya bazı kamu sitelerini önlem olarak kapattı; Kanada hükûmeti de sitelerini geçici olarak çevrim dışına aldı. ABD'de CISA yamayı uygulama çağrısı yaptı.

Kimi etkiliyor?

Web isteği karşılayan her PHP kurulumunu. Help Net Security'nin listesine göre PHP-FPM, Apache mod_php, php-cgi, FrankenPHP ve LiteSpeed kapsamda; mod_php kurulumları en büyük tehlike altında. Uygulama fark etmiyor: WordPress, Drupal, Joomla, Magento ve özel geliştirilmiş her PHP uygulaması. Drupal Association'ın geçici CEO'su Tiffany Farriss'in Engadget'a verdiği ifadeyle son 20 yılda yayımlanan her PHP sürümünü çalıştıran sunucular savunmasız.

Sürüm durumu (21 Ekim 2026):

  • 8.5, 8.4, 8.3, 8.2: Sırasıyla 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 ile yamalı.
  • 8.1, 8.0 ve 7.4: Projenin desteği bitmiş; kaynaktan derleyenler için yalnız asgari kaynak kod düzeltmesi yayımlandı. Dağıtımların ve uzun süreli destek (LTS) sağlayıcılarının paketlerine bakın; Help Net Security'ye göre Linux dağıtımları yamaları kamuya açık sürümden önce aldı.
  • PHP 5: Yama yok. Bu sürümü hâlâ çalıştıran bir sistem internetten ayrılmalı ve taşınmalı.

İstismarın nasıl çalıştığını, zero-day ve n-day ayrımını exploit yazısında anlattık; yama penceresinin neden saatlerle ölçülmesi gerektiği yama yönetimi yazısında.

5 adımlık kontrol listesi

1. Envanteri çıkarın

Yamalanamayan sistem, bilinmeyen sistemdir. Her sunucuda hangi PHP sürümünün hangi biçimde çalıştığını listeleyin:

php -v                      # komut satırı sürümü
php-fpm -v                  # FPM sürümü (dağıtıma göre php8.3-fpm -v)
dpkg -l | grep -i php       # Debian/Ubuntu paketleri
rpm -qa | grep -i php       # RHEL/Rocky/Alma paketleri

Container kullanıyorsanız image etiketlerine bakın (php:8.3-fpm gibi); yönetilen barındırma alıyorsanız sağlayıcınıza hangi sürümde olduğunuzu ve ne zaman yamalanacağınızı sorun. İnternete açık olanları önce işaretleyin; sıra onlarda.

2. Yamayı uygulayın ve PHP'yi yeniden başlatın

Paketi güncellemek yetmez; çalışan PHP-FPM işçileri ve mod_php yüklü Apache süreçleri eski kodu bellekte çalıştırmaya devam eder.

# Debian/Ubuntu
sudo apt update && sudo apt install --only-upgrade 'php8.3*' && sudo systemctl restart php8.3-fpm apache2
# RHEL/Rocky/Alma
sudo dnf update 'php*' && sudo systemctl restart php-fpm httpd

Container ortamında image'ı yamalı etikete çekip yeniden dağıtın. Help Net Security'ye göre yaygın kullanılan Remi deposunda yayın anında güncelleme yoktu; o depoyu kullananların dağıtım paketine geçmesi ya da kaynaktan derlemesi önerildi. Yamadan sonra php -v çıktısının yeni sürümü gösterdiğini ve süreçlerin yeniden başladığını doğrulayın.

3. Yamalanamayan sistemi internetten ayırın

CERT-EU'nun ve İngiltere NCSC'nin tavsiyesi bu: hemen yamalanamayan sistem kamu ağından ayrılır. Geçici kapatma, ele geçirilmiş bir sunucudan ucuzdur; dört ülke bunu kamu siteleri için yaptı. PHP 5 ve yamalı paketi olmayan 7.x/8.0/8.1 kurulumları bu adımın asıl adresi. Ayırmanın yolu güvenlik duvarında ilgili sunucuya giden 80/443 trafiğini kesmek ya da yük dengeleyiciden havuzdan çıkarmaktır; sunucuyu kapatmak değil, çünkü loglar lazım olacak.

4. WAF kuralını ara çözüm olarak açın

Help Net Security'ye göre Cloudflare, bilinen istismar vektörleri için ücretsiz plan dâhil bütün müşterilere WAF kuralları dağıttı; diğer sağlayıcılar da kural yayımlıyor. WAF yamanın yerine geçmez, yama süreniz boyunca kapıyı daraltır. Datadog'un uyarısı önemli: toplulukta önerilen session.upload_progress.enabled=0 ayarı koruma sağlamıyor; tek gerçek çözüm yama. WAF'ın ne yapıp ne yapamadığını ayrıca anlattık.

5. Logları 17 Ekim'den itibaren kontrol edin

Datadog'un tespit önerileri: olağan dışı büyük form gönderimleri, istek başlangıcında bellek tükenmesi hataları ve PHP süreçlerinden doğan beklenmedik kabuk (shell) süreçleri. Başarılı bir istismar işçiyi çökertmeyebilir, yani hata yokluğu güvende olduğunuz anlamına gelmiyor. Web sunucusu ve PHP-FPM loglarını, varsa EDR ve SIEM kayıtlarını ilk istismar denemesinin görüldüğü 17 Ekim'den bu yana tarayın. Şüpheli iz varsa sistemi kapatmadan önce logları saklayın ve olay müdahale sürecini başlatın; fidye yazılımı kurtarma planı yazısındaki ilk saat adımları burada da geçerli.

Yönetilen hizmet alıyorsanız

Sağlayıcınıza üç soru sorun: hangi sürümdeyiz, yama ne zaman uygulandı ve PHP süreçleri yeniden başlatıldı mı. Cevap "güncelledik" ise ikinci ve üçüncü soruyu yine sorun; yamalı paket kurulu ama eski süreç çalışıyor olabilir. Yama yönetimi, zafiyet taraması ve 7/24 izleme bizim tarafta yama ve zafiyet yönetimi ile güvenlik operasyonları hizmetlerinin konusu.

Sık sorulan sorular

PHP2Shell nedir? PHP'de 21 Ekim 2026'da yamalanan iki kritik açığın (CVE-2026-109618 ve CVE-2026-109619) kamuoyundaki adı. İkisi de CVSS 9.2; kimlik doğrulaması olmadan, tek bir HTTP isteğiyle sunucuda kod çalıştırmaya izin veriyor.

Hangi PHP sürümleri etkileniyor? Web isteği karşılayan bütün sürümler. Yamalı sürümler 8.5.12, 8.4.27, 8.3.36 ve 8.2.35; 7.4, 8.0 ve 8.1 için yalnız kaynak kod düzeltmesi var; PHP 5 için yama yok.

Yalnız paketi güncellemek yeterli mi? Hayır. PHP-FPM ve web sunucusu yeniden başlatılmazsa eski kod bellekte çalışmaya devam eder. Güncellemeden sonra php -v ile sürümü, servis durumuyla yeniden başlatmayı doğrulayın.

WordPress sitem etkileniyor mu? Evet. Açık WordPress'te değil PHP'nin kendisinde; WordPress, Drupal, Joomla, Magento ve özel PHP uygulamaları aynı durumda. Eklenti güncellemesi değil, sunucudaki PHP'nin güncellenmesi gerekiyor.

Saldırıya uğradığımı nasıl anlarım? Loglarda olağan dışı büyük form gönderimleri, istek başlangıcında bellek hataları ve PHP'den doğan beklenmedik kabuk süreçleri saldırı belirtisi. 17 Ekim'den itibaren bakın; başarılı istismar hata üretmeyebilir.

Kaynak kod düzeltmesi ne demek? Desteği biten 7.4, 8.0 ve 8.1 için PHP ekibi hazır paket değil, kaynaktan derleyenlerin uygulayabileceği asgari bir düzeltme yayımladı. Hazır paket kullananlar dağıtımlarının ya da LTS sağlayıcılarının yamalı paketini beklemeli, yoksa desteklenen bir sürüme geçmeli.

Kaynaklar