Siber Güvenlik

PHP2Shell (CVE-2026-109618 / CVE-2026-109619): Kritik PHP Açığından Siteniz Etkileniyor mu?

6 dakika okumaSiber GüvenlikGüncel KonularONGSEC Teknik Ekibi

PHP güvenlik ekibi 21 Ekim 2026'da, PHP çalışma zamanının kendisinde bulunan ve kimlik doğrulaması gerektirmeden uzaktan kod çalıştırmaya (RCE) izin veren iki kritik açık için acil güncelleme yayımladı: CVE-2026-109618 ve CVE-2026-109619. Kamuoyunda "PHP2Shell" adıyla anılan açıkların her ikisi de CVSS v4.0 ölçeğinde 9,2 puanla derecelendirildi. Yama yayımlanmadan önce bile istismar denemeleri görüldü. WordPress, Laravel, Joomla veya özel geliştirilmiş fark etmeksizin, PHP çalıştıran her web sitesi potansiyel olarak etkileniyor.

Kısa cevap

PHP'yi 8.5.12, 8.4.27, 8.3.36 veya 8.2.35 (ya da dağıtımınızın yamalı paketi) sürümüne yükseltin ve tüm PHP süreçlerini yeniden başlatın. Hemen güncelleyemiyorsanız session.upload_progress.enabled=0, düşük post_max_size ve web sunucusu düzeyinde istek boyutu sınırı gibi geçici önlemleri uygulayın. PHP 8.1 ve öncesi artık resmî güncelleme almıyor.

Açıklar neyle ilgili?

  • CVE-2026-109618 — bellek yetersizliği (OOM) sırasında bozulma: PHP, bellek sınırına ulaşıldığında isteği kesebiliyor; bu sırada iç istek verileri yarım kalmış durumdayken temizlik aşaması bu bozuk veriyi geçerliymiş gibi işleyebiliyor.
  • CVE-2026-109619 — eski genel durum (stale global state): Bir isteğe ait iç durum, belleği serbest bırakıldıktan sonra da yaşayabiliyor; aynı işçi sürecinin işlediği bir sonraki istek bu bayat durumu kullanabiliyor. Bilinen istismar yollarından biri oturum yükleme ilerlemesi (session upload progress) özelliği üzerinden.

Açıklar uygulama kodunda değil PHP'nin kendisinde olduğu için, kodunuz ne kadar güvenli yazılmış olursa olsun savunmasız bir PHP sürümü siteyi riske atar. Ayrıca saldırganın işçi süreç belleğini okuyabilmesi, başka isteklere ait parola, oturum anahtarı ve API anahtarlarının sızma riskini doğuruyor.

Kimler etkileniyor?

  • Apache mod_php: En yüksek risk. PHP ekibine göre tek bir kimlik doğrulamasız istekle, herhangi bir uygulama kodu çalışmadan önce tetiklenebiliyor.
  • PHP-FPM, php-cgi, FrankenPHP, LiteSpeed: Etkileniyor; istismar koşulları SAPI'ye göre farklılık gösteriyor.
  • Sürümler: PHP 5.4'e kadar geriye uzanan neredeyse tüm sürümler.

Düzeltilmiş sürümler

DalSavunmasızYamalı sürüm
PHP 8.58.5.12 öncesi8.5.12
PHP 8.48.4.27 öncesi8.4.27
PHP 8.38.3.36 öncesi8.3.36
PHP 8.28.2.35 öncesi8.2.35 (31 Aralık 2026'da destek sona eriyor)
PHP 8.1 ve öncesiTümüResmî güncelleme yok — desteklenen sürüme geçin

Linux dağıtımları yamayı eski sürüm numarasıyla yayımlayabilir. Sürüm numarasına değil, paketin değişiklik günlüğünde CVE numarasının geçip geçmediğine bakın. WordPress veya Laravel'i güncellemek PHP'yi güncellemez.

Hemen güncelleyemiyorsanız: geçici önlemler

PHP ekibinin vurguladığı gibi bu önlemler yalnızca belirli saldırı yollarını daraltır, kurulumu güvenli hâle getirmez. Yine de yama penceresinde riski ciddi biçimde azaltır:

  1. session.upload_progress.enabled = 0 ayarını php.ini, FPM havuzu veya sunucu yapılandırmasında yapın ve tüm işçi süreçleri yeniden başlatın. ini_set() veya FPM altındaki .user.ini bu açık için yeterli sayılmıyor.
  2. Düşük post_max_size: Dosya yüklemesi gerekmeyen uygulamalarda 8M, gerekenlerde 32M; upload_max_filesize bunun altında olmalı.
  3. Web sunucusu veya proxy düzeyinde sınır: İstek gövdesi boyutu, form alanı sayısı ve çok parçalı (multipart) parça sayısı için üst sınır koyun. Dosya yükleme kullanmayan sitelerde multipart istekleri tamamen reddetmek güçlü bir önlemdir.
  4. memory_limit: PHP ekibi, uygulamaların değiştiremeyeceği bir yerde (ör. php_admin_value) -1 ayarlanmasını ve bellek sınırının konteyner/cgroup ile sağlanmasını öneriyor. RLIMIT_AS / RLIMIT_DATA kullanmayın.
  5. PHP 8.5'te ayrıca fatal_error_backtraces = 0.
  6. WAF kuralları: Cloudflare gibi sağlayıcılar varsayılan kurallar yayımladı; ancak saldırganların yükleri değiştirerek kuralları atlattığı da gözlendi.

Ele geçirilme belirtileri

  • Bellek sınırı hatalarının ve art arda HTTP 500 yanıtlarının izlediği olağandışı çok parçalı istekler
  • Olağandışı büyüklükte PHPSESSID çerezleri
  • Açıklanamayan PHP işçi süreci yeniden başlamaları
  • Web kökünde beklenmeyen yeni .php dosyaları (web kabuğu)

Şüphe varsa yalnızca yamalamak yetmez: sunucudaki gizli anahtarları (veritabanı parolaları, API anahtarları, oturum gizli anahtarları) değiştirin ve olay müdahale sürecini başlatın.

Kontrol listesi

  1. Tüm PHP çalıştıran sunucu ve konteynerlerin envanterini çıkarın (unutulan test ve eski siteler dâhil).
  2. PHP sürümünü ve paket değişiklik günlüğünü kontrol edin.
  3. Yamalı sürüme geçin, Apache / PHP-FPM ve uzun ömürlü işçileri yeniden başlatın.
  4. Geçici önlemleri yama sonrasına kadar yerinde tutun; memory_limit ve post_max_size değerlerini uygulamanızın ihtiyacına göre yeniden gözden geçirin.
  5. Web sunucusu loglarını 20 Ekim 2026'dan itibaren yukarıdaki belirtiler için inceleyin.
  6. Paylaşımlı hosting kullanıyorsanız sağlayıcınızdan yamalı sürüm ve yeniden başlatma teyidi isteyin.

ONGSEC olarak ne yaptık?

Kendi web sitemizde PHP yalnızca üç küçük uç noktada (iletişim formu, bülten kaydı, haber akışı) çalışıyor. Bu açıklar duyurulduktan sonra; web sunucusu düzeyinde çok parçalı istekleri tamamen reddettik, istek gövdesini 64 KB ile sınırladık, PHP'nin yalnızca bu üç dosyada çalışmasına izin verdik, oturum yükleme ilerlemesini kapattık. Bunlar savunmayı derinleştiren önlemlerdir; asıl adım her zaman PHP'nin yamalı sürüme yükseltilmesidir. Aynı değerlendirmeyi kurumunuzun web uygulamaları için de yapabiliriz: uygulama güvenliği testi, dış saldırı yüzeyi izleme ve olay müdahale için bize ulaşın.

Sık sorulan sorular

WordPress sitemi güncelledim, güvende miyim?

Hayır. WordPress, eklentiler ve temalar uygulama katmanıdır; açık PHP çalışma zamanındadır. Sunucudaki PHP sürümünün yamalı olduğunu ayrıca doğrulamanız gerekir.

Paylaşımlı hosting kullanıyorum, ne yapmalıyım?

Hosting panelinizden PHP sürümünü kontrol edin, desteklenen en güncel dalı seçin ve sağlayıcınızdan CVE-2026-109618 ve CVE-2026-109619 yamalarının uygulandığını ve PHP süreçlerinin yeniden başlatıldığını yazılı olarak teyit etmesini isteyin.

PHP sürümümü nasıl öğrenirim?

Komut satırında php -v veya hosting panelindeki PHP ayarları ekranı. Web üzerinden erişilebilen bir phpinfo() sayfası bırakmayın; saldırganlara da aynı bilgiyi verir.

Kaynaklar: php.net güvenlik duyurusu · The Hacker News

Başlayalım

Projenizi konuşalım.

İlk görüşme bir keşif toplantısıdır, satış sunumu değil. Kurumunuzun kendi ortamında yapılacak kısa süreli bir pilot çalışma veya kavram doğrulama (PoC) ile yetkinliğimizi doğrudan değerlendirebilirsiniz.

Teklif formunu doldurun

WhatsApp