Tehdit Araştırmaları

PHP2Shell (CVE-2026-109618 ve CVE-2026-109619): Kritik PHP RCE Açığı ve Korunma Rehberi

Yazar: Moftgate Tehdit Araştırmaları Ekibi(Kıdemli Güvenlik Araştırmacısı)•23 Ekim 2026•Güncellendi: 1 Kasım 2026•10 dk okuma•✓Uzman Onaylı

PHP2Shell, PHP çekirdeğinde kimlik doğrulaması gerektirmeyen iki kritik uzaktan kod çalıştırma (RCE) açığının adıdır. Etkilenen sürümleri, yama planını ve yamayı hemen uygulayamayanlar için geçici önlemleri savunma bakışıyla anlatıyoruz.

Önemli Çıkarım

PHP2Shell, Ekim 2026'da açıklanan iki kritik PHP çekirdek açığıdır: CVE-2026-109618 ve CVE-2026-109619. İkisi de kimlik doğrulaması gerekmeden uzaktan kod çalıştırmaya (RCE) izin verebilir ve CVSS v4.0'da 9.2 puanla derecelendirilmiştir. Birinci ve tek kesin çözüm PHP'yi yamalı sürüme güncellemektir.

  • PHP2Shell bir ürün değil; PHP çekirdeğindeki iki kritik RCE açığının ortak adıdır.
  • CVE-2026-109618: bellek bozulmasına (OOM/Zend motoru) dayalı RCE. CVE-2026-109619: eski küresel durum (stale global state) üzerinden RCE; bir saldırı yolu session.upload_progress ile ilişkilidir.
  • PHP ekibi 21 Ekim 2026'da yamaları yayımladı: 8.5.12, 8.4.27, 8.3.36 ve 8.2.35.
  • Yamalama her şeyin önündedir. Geçici önlemler (session.upload_progress kapatma, WAF kuralı) yamayı geciktiremediğiniz durumlar içindir, kalıcı çözüm değildir.

PHP2Shell nedir?

PHP2Shell, PHP programlama dilinin çekirdeğinde bulunan iki ayrı güvenlik açığına verilen isimdir. Açıklar PHP'nin kendisinde olduğu için, PHP ile çalışan WordPress, Drupal, Joomla ve özel yazılımlar dâhil çok geniş bir yüzey etkilenir. En tehlikeli yanı, saldırının kimlik doğrulaması gerektirmemesidir: saldırganın geçerli bir kullanıcı hesabına ihtiyacı yoktur.

Başarılı bir istismar, saldırgana sunucuda komut çalıştırma (RCE) imkânı verir. Buradan dosya okuma, veri sızıntısı, yeni kullanıcı açma ve fidye yazılımı için zemin hazırlama gibi adımlar gelebilir. PHP2Shell'in 'kritik' sayılmasının nedeni budur.

İki açık: CVE-2026-109618 ve CVE-2026-109619

CVETürüÖnemli not
CVE-2026-109618Bellek bozulması (OOM) kaynaklı RCEZend motoru çekirdeğindedir; tek bir INI ayarıyla kapatılamaz, çözümü yamadır.
CVE-2026-109619Eski küresel durum (stale global state) kaynaklı RCEBir istismar yolu session.upload_progress ile ilişkilidir; ayarı kapatmak kısmi ve geçici bir önlemdir.

PHP projesi her iki açığı CVSS v4.0'da 9.2 (kritik) olarak derecelendirdi. İstismar durumu kaynağa ve tarihe göre değişiyor. CrowdStrike 23 Ekim 2026'da yalnızca deneme ve başarısız girişimler gördüğünü yazdı. Palo Alto Networks Unit 42 ise 29 Ekim 2026'da internete açık PAN-OS yönetim arayüzlerine karşı aktif istismar bildirdi. Bu nedenle yamayı bekletmeyin.

Etkilenen ve yamalı sürümler

  • Risk altındakiler: web isteği işleyen tüm PHP kurulumları. PHP-FPM, Apache mod_php, php-cgi, FrankenPHP ve LiteSpeed bu kapsamdadır. PHP ekibi en yüksek riskin mod_php'de olduğunu belirtir.
  • Yamalı sürümler (21 Ekim 2026): PHP 8.5.12, 8.4.27, 8.3.36 ve 8.2.35.
  • PHP 8.1 ve öncesi ömrünü tamamlamıştır (EOL); PHP projesinden resmî sürüm almaz. PHP güvenlik ekibi 7.4, 8.0 ve 8.1 için sınırlı kaynak yamaları yayımlamıştır. PHP 8.2 de 31 Aralık 2026'da EOL olur.
  • Dağıtım paketleri ayrı bir hat izler. Örneğin Debian ve Ubuntu paketleri, yukarı akış sürüm numarasından farklı bir sürümle yamayı geri taşıyabilir.
  • Bu yüzden yalnızca yukarı akış numarasına değil, kendi dağıtımınızın paket sürümüne bakın.

Öncelik 1: Yamalayın

  • Çalışan PHP sürümünü ve nasıl çalıştığını (mod_php, PHP-FPM, CLI) belirleyin.
  • Dağıtımınızın yamalı paketini kurun ve ardından PHP-FPM veya web sunucusunu yeniden başlatın.
  • Konteyner imajlarını yamalı temel imajdan yeniden oluşturun. Yalnızca çalışan konteyneri yamalarsanız imaj açık kalır.
  • Birden fazla PHP sürümü barındıran sunucularda hepsini ayrı ayrı güncelleyin.
  • EOL sürümdeyseniz desteklenen bir sürüme geçiş planı yapın; kaynak yamaları yalnızca geçici bir köprüdür.

Yamayı hemen uygulayamıyorsanız

Geçici önlemler istismarı zorlaştırabilir ama açığı kapatmaz. CVE-2026-109618 Zend motoru çekirdeğindedir ve hiçbir INI ayarıyla düzeltilemez. Geçici önlemleri uyguladıktan sonra en kısa sürede yamalayın.

Geçici önlemler (yama öncesi köprü)

  • CVE-2026-109618: memory_limit=-1 yapın. Bunu uygulamanın değiştiremeyeceği bir yerde ayarlayın (örneğin php_admin_value). Bu önlem, alttaki bellek ayırma hatalarını engellemez.
  • CVE-2026-109618: post_max_size değerini düşürün. Dosya yükleme yoksa 8M, varsa 32M kullanın. upload_max_filesize değerini post_max_size altında tutun.
  • RLIMIT_AS veya RLIMIT_DATA kullanmayın. Bu sınırlar açığı tetikleyen bellek hatasına yol açabilir. Bunun yerine konteyner veya cgroup sınırı kullanın.
  • CVE-2026-109619: php.ini, FPM havuzu veya sunucu yapılandırmasında session.upload_progress.enabled=0 yapın (ini_set() veya FPM .user.ini ile değil) ve tüm worker'ları yeniden başlatın. Bu, doğrulanmış oturum yollarını engeller, diğer varyantları engellemez.
  • CVE-2026-109619: PHP 8.5'te fatal_error_backtraces=0 yapın ve tüm worker'ları yeniden başlatın.
  • Saldırganın tetikleyebileceği ölümcül hataları ve yürütme zaman aşımlarını düzeltin.
  • Web sunucusu, proxy veya WAF üzerinde istek boyutu, alan sayısı, multipart parça sayısı, başlık sayısı ve iç içe geçme derinliği sınırları koyun. PHP_SESSION_UPLOAD_PROGRESS içeren multipart POST isteklerini sınırlayabilirsiniz.
  • Bu önlemleri önce test ortamında deneyin. PHP ekibine göre bu önlemler riski azaltır, ancak kurulumu güvenli yapmaz.

Ayrı konu: CVE-2026-115560

PHP ekibi 23 Ekim 2026'da bu açık için bilgilendirme yayımladı. 21 Ekim sürümleri bu açığı kapatmaz. Açık yalnızca şu durumda oluşur: uygulama session.serialize_handler değerini php_binary veya php_serialize olarak ayarlar, çalışma anında ini_set() ile php yapar ve session upload progress açıktır. Bu yapıyı kullanıyorsanız session.upload_progress.enabled=0 yapın. PHP ekibi tam bildirimi sonraki düzenli sürümle yayımlayacağını belirtti.

Tespit: istismar edilip edilmediğinizi nasıl anlarsınız?

Bellek bozulmasına dayalı istismar, hedef süreçte çökme ve yeniden başlamalara yol açabilir. Katmanlı tespit önerilir:

  • Süreç davranışı: PHP-FPM veya web sunucusu sürecinin kabuk, ağ tarama veya şifreleme aracı başlatması güçlü bir alarmdır.
  • Çökme ve segfault kayıtları: Web sunucusunda ani ve tekrarlayan segfault/çökme kayıtları incelenmelidir.
  • Dosya bütünlüğü: Web kök dizininde beklenmedik yeni veya değişen dosyalar uyarı üretmelidir.
  • Erişim kayıtları: PHP_SESSION_UPLOAD_PROGRESS alanı içeren olağan dışı multipart istekleri ve bilinmeyen dosyalara gelen kısa tekrarlı istekler aranmalıdır.
  • Giden trafik: Sunucudan beklenmedik dış bağlantılar veri sızıntısına işaret edebilir.

İstismar belirtisi görürseniz

Sunucuyu ağdan izole edin, kayıtları ve bellek görüntüsünü koruyun. Olay müdahale sürecinizi başlatın, erişim bilgilerini yenileyin ve kök nedeni analiz etmeden sistemi geri döndürmeyin.

Moftgate bu açığa karşı nasıl yardımcı olur?

Moftgate yamanın yerini tutmaz; önce PHP'yi güncellemeniz gerekir. Ancak Moftgate uç nokta ajanı, sunucular dâhil uç noktalarda süreç davranışını ve dosya değişikliklerini sürekli izler; böylece bir istismar denemesini erken yakalamanıza yardım eder. PHP-FPM sürecinin anormal bir komut başlatması veya web kök dizinine beklenmedik bir dosya yazılması merkezi konsolda alarm üretir. Yerleşik WORM yedekleme, saldırı fidye aşamasına geçerse verinin değiştirilemez bir kopyasını korur. DLP motoru ise elde edilen erişimle veri dışarı taşınmaya çalışıldığında çıkışı engeller.

Stratejik Çıkarım

PHP2Shell'e karşı tek gerçek çözüm yamadır. Geçici önlemler zaman kazandırır; davranış tabanlı uç nokta izleme ise yamadan önce de sonra da erken uyarı verir. İkisi birlikte çalışmalıdır.

Yazar Deneyimi ve Editoryal Standartlar
M
Moftgate Tehdit Araştırmaları EkibiKıdemli Güvenlik Araştırmacısı

Moftgate Tehdit Araştırmaları Ekibi, web uygulaması ve uç nokta tehditlerini savunma amacıyla inceler. Bu yazı yalnızca savunma ve farkındalık içindir; çalışır bir saldırı kodu veya istismar aracı içermez.

✓Teknik doğrulama ve inceleme: Moftgate Güvenlik Danışma Kurulu
Sıkça Sorulan Sorular

Uygulayıcılar İçin Uzman Yanıtları

PHP2Shell tam olarak nedir?

PHP çekirdeğindeki iki kritik açığın (CVE-2026-109618 ve CVE-2026-109619) ortak adıdır. Her ikisi de kimlik doğrulaması gerekmeden uzaktan kod çalıştırmaya izin verebilir.

Hangi PHP sürümlerine güncellemeliyim?

PHP ekibinin 21 Ekim 2026'da yayımladığı yamalı sürümler 8.5.12, 8.4.27, 8.3.36 ve 8.2.35'tir. Dağıtımınızın geri taşınmış paket sürümünü de kontrol edin. PHP 8.1 ve öncesi EOL'dir; desteklenen bir sürüme geçin.

session.upload_progress ayarını kapatmak yeterli mi?

Hayır. Bu ayar CVE-2026-109619'un bir yolunu zorlaştıran geçici bir önlemdir ve tüm istismarı engellemez. CVE-2026-109618 ise Zend motoru çekirdeğindedir ve hiçbir INI ayarıyla kapatılamaz. Tek kesin çözüm yamadır.

21 Ekim yaması CVE-2026-115560 açığını da kapatır mı?

Hayır. CVE-2026-115560 ayrı bir açıktır. Yalnızca serialize handler değerini çalışma anında php yapan uygulamalarda oluşur. PHP ekibi bu durumda session.upload_progress.enabled=0 önerir.

İstismar edildiğimi nasıl anlarım?

PHP-FPM veya web sunucusu sürecinin anormal komut başlatması, tekrarlayan segfault/çökme kayıtları, web kök dizinindeki beklenmedik dosyalar ve PHP_SESSION_UPLOAD_PROGRESS içeren olağan dışı istekler göstergedir. Şüphede sunucuyu izole edip olay müdahalesi başlatın.

Resmi Standartlar ve Kaynakça

KURUMSAL GÜVENLİK & İŞ SÜREKLİLİĞİ

Moftgate ile Tüm Uç Noktaları Görün

15 dakikada yerel altyapınızda ayağa kaldırın. İlk yıl 200 endpoint ücretsizdir.