PHP2Shell: PHP'deki Kritik Güvenlik Açıkları ve Sitenizi Korumak İçin Yapılacaklar
PHP2Shell: 21 Ekim 2026'da PHP'de iki kritik güvenlik açığı yamalandı. Siteniz etkileniyor mu, nasıl anlarsınız, ne yapmalısınız? Sade dille anlatıyoruz.
Eren Tekin5 dk okuma

PHP2Shell, PHP'de 21 Ekim 2026'da kapatılan iki kritik güvenlik açığına (CVE-2026-109618 ve CVE-2026-109619) verilen addır. Bu açıklar, saldırganın sitenize giriş yapmadan sunucuda komut çalıştırmasına yol açabiliyor. Sitenizi çalıştıran PHP 8.5.12, 8.4.27, 8.3.36 ya da 8.2.35'ten eskiyse etkileniyor olabilirsiniz. Çözüm: PHP'yi güncelleyin ve PHP'yi çalıştıran hizmeti yeniden başlatın. Paylaşımlı hosting kullanıyorsanız bunu hosting firmanızdan isteyin.
PHP, web sitelerinin arka planda çalıştığı bir programlama dilidir; WordPress de PHP ile çalışır. Bu yazıda ne olduğunu, kimlerin etkilendiğini, sitenizi nasıl kontrol edeceğinizi ve hangi adımları atmanız gerektiğini sırayla anlatıyoruz. Teknik ekipler için sürüm numaralarını, komutları ve ayarları da ekledik.
PHP2Shell nedir, ne oldu?
PHP ekibi 20 Ekim 2026'da bir güvenlik sürümü geleceğini önceden duyurdu ve sürümleri 21 Ekim 2026'da saat 14:00'te (UTC) yayımladı. Kapatılan iki açığın numaraları CVE-2026-109618 ve CVE-2026-109619. CVE, bilinen güvenlik açıklarına verilen uluslararası kayıt numarasıdır. İki açık da CVSS v4.0 ölçeğinde 9.2 puan aldı ve kritik düzeyde. CVSS, bir açığın ne kadar ciddi olduğunu 0 ile 10 arasında puanlayan ortak bir ölçüdür.
PHP2Shell adını PHP kullanmıyor. Bu adı, açıkları bulanlardan Calif ve basın kullanıyor. Açıkları Calif, OpenAI (Codex Security) ve Wiz Research buldu. İlk bildirim 11 Ağustos 2026'da yapıldı.
Sade bir dille şöyle oluyor: Saldırgan sitenize giriş yapmadan, özel olarak hazırlanmış bir istek gönderiyor. Bu, büyük bir form ya da dosya yükleme isteği gibi görünüyor. Birinci açıkta PHP'nin belleği bittiği anda, ikinci açıkta ise PHP önceki bir isteğin bellekte kalan artığını yanlışlıkla kullandığında saldırgan sunucuda komut çalıştırabiliyor. Bu tür açıklara uzaktan kod çalıştırma (RCE) denir: saldırgan sunucunuzda kendi istediği komutları çalıştırabilir.
Önemli nokta şu: Bu olay sitenizin kendi kodu devreye girmeden oluyor. Yani WordPress'iniz ve eklentileriniz güncel olsa bile altındaki PHP eskiyse risk sürüyor. WordPress'i güncellemek PHP'yi güncellemez.
PHP2Shell kimleri etkiliyor?
Düzeltilmiş sürümlerden eski PHP ile çalışan siteler etkileniyor. Sunucunun işletim sistemi fark etmiyor. PHP'nin sunucuda çalışma biçimlerinin hepsi etkileniyor: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP ve LiteSpeed. php.net'e göre bunların içinde en riskli olanı mod_php.
- WordPress ve diğer içerik yönetim sistemleri: Calif; WordPress, Drupal, Joomla ve Magento ile çalışan sitelere karşı giriş gerektirmeden kod çalıştırılabildiğini gösterdi.
- Paylaşımlı hosting: Sunucuyu siz yönetmiyorsanız PHP'yi kendiniz güncelleyemezsiniz. Güncellemeyi hosting firmanızdan istemeniz gerekiyor.
- cPanel: cPanel'in EasyApache aracı için ea-php82, ea-php83, ea-php84 ve ea-php85 paketlerinin yamalı sürümleri çıktı.
- Plesk: Plesk konuyla ilgili resmi bir destek makalesi yayımladı; ayrıntılar için Plesk'in destek sayfalarına bakın.
Düzeltilmiş PHP sürümleri
Aşağıdaki tabloda her PHP kolu için açıkların kapatıldığı sürüm var. Kol, PHP'nin 8.4 ya da 8.3 gibi ana sürüm ailesidir. Tablodaki sürümden önceki sürümler etkileniyor.
| PHP kolu | Düzeltilmiş sürüm | Not |
|---|---|---|
| 8.5 | 8.5.12 | |
| 8.4 | 8.4.27 | |
| 8.3 | 8.3.36 | |
| 8.2 | 8.2.35 | 31 Aralık 2026'da destek dışı kalıyor |
| 8.1, 8.0, 7.4 | Resmi sürüm yok | Yalnız kaynak kod yaması var; desteklenen bir sürüme geçin |
Bir uyarı: Bazı Linux dağıtımları ve CloudLinux, yamayı eski sürüm numarasının üzerine ekleyebiliyor. Örneğin yamalı ea-php84 paketi 8.4.26 olarak görünebilir (Datadog ve Sansec). Yani yalnız sürüm numarasına bakmak yanıltabilir. Aşağıdaki kontrol yolları bu yüzden önemli.
Sitenizin PHP sürümünü nasıl kontrol edersiniz?
Teknik bilginiz yoksa
- WordPress kullanıyorsanız: Yönetim panelinde Araçlar > Site Sağlığı > Bilgi > Sunucu bölümüne girin. Sitenizi çalıştıran PHP sürümünü orada görürsünüz.
- cPanel kullanıyorsanız: MultiPHP Manager ekranında sitenizin PHP sürümü yazıyor.
- Plesk kullanıyorsanız: PHP Ayarları ekranına bakın.
Gördüğünüz sürüm tablodaki düzeltilmiş sürümden eskiyse ya da emin olamıyorsanız hosting firmanıza yazın ve şunu sorun: Sunucudaki PHP, CVE-2026-109618 ve CVE-2026-109619 yamalarını içeriyor mu? Sürüm numarası yanıltıcı olabileceği için bu soru, yalnız sürümü sormaktan daha net bir cevap verir.
Teknik ekipler için
php -v komutu, komut satırında çalışan PHP'nin sürümünü gösterir. Siteyi çalıştıran PHP bundan farklı olabilir. Daha güvenilir yol, PHP paketinin değişiklik geçmişinde CVE numarasını aramaktır:
# Debian / Ubuntu
zgrep CVE-2026-109618 /usr/share/doc/php*-common/changelog.Debian.gz
# RHEL / AlmaLinux / Rocky Linux
rpm -q --changelog php-common | grep CVE-2026-109618
Aynı aramayı CVE-2026-109619 için de yapın. Sunucuda birden fazla PHP sürümü kuruluysa her birini ayrı kontrol edin.
PHP2Shell'e karşı ne yapmalı?
- PHP'yi güncelleyin: Kullandığınız kola göre 8.5.12, 8.4.27, 8.3.36 ya da 8.2.35'e geçin.
- Hizmeti yeniden başlatın: Güncellemeden sonra PHP-FPM, Apache ya da lsphp hizmetini yeniden başlatın. Bu adımı atlamayın.
- Eski kolda kalmayın: PHP 8.1 ya da daha eskisini kullanıyorsanız desteklenen bir sürüme geçin. 8.2 kolu da 31 Aralık 2026'da destek dışı kalacak; geçişi şimdiden planlayın.
Güncellemeyi hemen yapamıyorsanız aşağıdaki ayarlar riski azaltır. Ama tam koruma sağlamaz. Bunları güncellemenin yerine değil, güncellemeye kadar geçen süre için düşünün:
session.upload_progress.enabled = 0: Dosya yükleme ilerlemesini takip eden özelliği kapatır.fatal_error_backtraces = 0: Yalnız PHP 8.5'te geçerli.post_max_sizedeğerini düşürün: Bu değer, tek bir istekte gönderilebilecek en büyük veri boyutudur.- Mümkünse PHP-FPM havuzunda
pm.max_requests = 1: Her PHP işçisinin tek bir istekten sonra yenilenmesini sağlar.
Bu ayarlar php.ini dosyasında ya da PHP-FPM havuz ayarında verilmeli. .user.ini dosyasıyla ya da kod içinde ini_set ile verilen değerler işe yaramaz. Ayarları değiştirdikten sonra da hizmeti yeniden başlatın.
PHP2Shell açıkları saldırılarda kullanılıyor mu?
Evet. ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), 26 Ekim 2026'da iki açığı KEV listesine ekledi. KEV, gerçek saldırılarda kullanıldığı bilinen açıkların listesidir. Saldırı girişimleri yama yayımlanmadan önce görülmeye başladı: AWS 17 Ekim'de girişim gördüğünü bildirdi; Cloudflare da girişimler gözlemledi. watchTowr ise 21 Ekim'de girişim gördüğünü bildirdi.
Öte yandan Sansec'e göre yayımlanan saldırı örnekleri varsayılan kurulumda çalışmıyor ve kitlesel saldırı düşünüldüğünden zor. Bu görüşü şimdilik yalnız Sansec dile getiriyor. Yine de güncellemeyi ertelemek için bir neden değil.
Türkiye'deki durum
Bloomberg HT, Dünya ve Gazete Oksijen'in haberlerine göre Cumhurbaşkanlığı Siber Güvenlik Başkanlığı, 22 Ekim'de ulusal bir tarama başlattı ve kamu kurumlarıyla kritik altyapı işletmecilerine bildirim gönderdi. Kamuya ya da kritik altyapıya hizmet veriyorsanız bu bildirimleri takip edin. Özel bir şirketseniz de yukarıdaki adımlar aynı.
Son günlerde çıkan diğer PHP açıkları
- CVE-2026-115560 (23 Ekim): Yalnız olağandışı yapılandırmalarda ortaya çıkıyor. Henüz yaması yok. Geçici önlem olarak dosya yükleme ilerleme takibini (
session.upload_progress.enabled = 0) kapatmak öneriliyor. - CVE-2026-111497 (26 Ekim): Yalnız Windows için hazırlanan PHP paketlerini ve Brotli sıkıştırmasını ilgilendiriyor.
ZIPPEX'ten destek
Sunucunuzu kontrol etmemizi isterseniz iletişim sayfasından bize yazın. Sunucu güvenliğiyle ilgili hizmetlerimiz için siber güvenlik ve bulut sunucu sayfalarına bakabilirsiniz.
Kaynaklar
- PHP 2026 haber arşivi (php.net)
- CVE-2026-109618 güvenlik bildirimi, GHSA-w8hw-w9fx-j79w (GitHub, php-src)
- CVE-2026-109619 güvenlik bildirimi, GHSA-6wmf-4rv5-p3rp (GitHub, php-src)
- CISA, iki açığın KEV listesine eklenmesi, 26 Ekim 2026
- Calif, PHP2Shell
- Datadog Security Labs: PHP2Shell
- Sansec: PHP2Shell
- The Hacker News: PHP acil yamaları
- Bloomberg HT: Türkiye'de PHP açığına karşı harekete geçildi
Sık sorulan sorular
- PHP2Shell nedir?
- PHP'de 21 Ekim 2026'da yamalanan iki kritik açığa (CVE-2026-109618 ve CVE-2026-109619) Calif ve basının verdiği ad. Bu açıklar, saldırganın giriş yapmadan sunucuda komut çalıştırmasına yol açabiliyor.
- WordPress'i güncellemek yeterli mi?
- Hayır. Açık WordPress'te değil, altındaki PHP'de. WordPress güncellemesi PHP'yi güncellemez; PHP'nin de düzeltilmiş sürüme geçmesi gerekir.
- Hangi PHP sürümlerinde bu açıklar kapatıldı?
- 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 sürümlerinde. PHP 8.1 ve öncesi için resmi sürüm çıkmadı; bu sürümleri kullanıyorsanız desteklenen bir sürüme geçmeniz gerekiyor.
- Paylaşımlı hosting kullanıyorum, ne yapmalıyım?
- PHP'yi kendiniz güncelleyemezsiniz. Hosting firmanıza sunucudaki PHP'nin CVE-2026-109618 ve CVE-2026-109619 yamalarını içerip içermediğini sorun; içermiyorsa güncelleme isteyin.
- PHP2Shell açıkları gerçek saldırılarda kullanılıyor mu?
- Evet. ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), 26 Ekim 2026'da CVE-2026-109618 ve CVE-2026-109619'u gerçek saldırılarda kullanıldığı bilinen açıklar listesine (KEV) ekledi. AWS, saldırı girişimlerini yama çıkmadan önce, 17 Ekim'de gördüğünü bildirdi.
- PHP'yi hemen güncelleyemiyorsam ne yapabilirim?
- Güncellemeye kadar php.ini ya da PHP-FPM havuz ayarında session.upload_progress.enabled = 0 yapın, post_max_size değerini düşürün, mümkünse pm.max_requests = 1 verin; PHP 8.5'te fatal_error_backtraces = 0 da ekleyin. Bu ayarlar riski azaltır ama tam koruma sağlamaz; asıl çözüm güncellemektir.
- PHP güvenlik açığı
- PHP2Shell
- CVE-2026-109618
- CVE-2026-109619
- PHP sürüm güncelleme
- WordPress PHP güvenliği


