PHP2Shell Nedir? PHP'de Kritik Güvenlik Açığı: CVE-2026-109618 ve CVE-2026-109619
CVE-2026-109618 ve CVE-2026-109619 zaafiyetleri nedir ? Nasıl Önlem alınır ?
21 Ekim 2026 tarihinde PHP geliştirici ekibi tarafından iki kritik güvenlik açığı duyuruldu. PHP2Shell olarak adlandırılan ve CVE-2026-109618 ile CVE-2026-109619 kodlarıyla takip edilen bu açıklar, saldırganların kimlik doğrulaması yapmadan PHP çalıştıran sunucularda uzaktan kod yürütmesine (Remote Code Execution – RCE) imkân tanıyabiliyor.
Her iki güvenlik açığının CVSS 4.0 puanı 9.2 olarak açıklandı. Özellikle web hosting altyapıları, paylaşımlı sunucular ve PHP tabanlı web uygulamaları açısından oldukça ciddi bir risk söz konusu.
Burada dikkat edilmesi gereken en önemli nokta, açığın WordPress, Joomla, Laravel veya herhangi bir PHP uygulamasından kaynaklanmaması. Güvenlik zafiyeti doğrudan PHP'nin kendi çalışma motorunda bulunuyor. Dolayısıyla web uygulamasının ve eklentilerinin güncel olması, tek başına yeterli koruma sağlamıyor.
PHP2Shell Güvenlik Açığı Nasıl Çalışıyor?
PHP2Shell aslında PHP'nin bellek yönetimindeki iki farklı zafiyeti kapsıyor.
CVE-2026-109618 – Bellek yönetimi hatası
Bu açık, PHP'nin bellek yetersizliği (Out of Memory – OOM) durumlarını ele alma biçiminden kaynaklanıyor.
PHP bir HTTP isteğini işlerken bellek sınırına ulaşırsa bazı işlemler tamamlanmadan sonlandırılabiliyor. Normal şartlarda PHP'nin bu yarım kalan işlemleri güvenli biçimde temizlemesi gerekiyor. Ancak tespit edilen zafiyet nedeniyle henüz tam olarak başlatılmamış bellek alanları geçerli kabul edilebiliyor.
Uygun koşullarda bu durum, saldırganın PHP işleminin belleğini manipüle ederek uzaktan kod çalıştırmasına yol açabiliyor.
CVE-2026-109619 – Önceki istekten kalan bellek durumunun kullanılması
İkinci açık ise PHP'nin farklı HTTP istekleri arasında tuttuğu bazı dahili değişkenlerle ilgili.
PHP, önceki isteğe ait bellek alanını serbest bırakmış olsa bile bu alana işaret eden bazı değişkenler bellekte kalabiliyor. Aynı PHP worker üzerinden işlenen sonraki bir istekte bu eski referansların kullanılması, bellek bütünlüğünü bozabiliyor.
Bu zafiyetin başarılı şekilde kullanılması da uzaktan kod çalıştırma veya sunucu belleğindeki hassas bilgilerin açığa çıkmasıyla sonuçlanabiliyor.
Her iki senaryoda da saldırının başarılı olması belirli teknik koşullara bağlı. Bununla birlikte, bazı saldırı yöntemlerinin uygulama kodu çalışmaya başlamadan önce tetiklenebilmesi, PHP2Shell'i özellikle önemli hale getiriyor.
Hangi PHP Sürümleri Etkileniyor?
PHP geliştirici ekibi, 21 Ekim 2026 tarihinde aşağıdaki güvenlik güncellemelerini yayımladı.
| PHP sürümü | Etkilenen sürümler | Güvenli sürüm |
|---|---|---|
| PHP 8.5 | 8.5.11 ve öncesi | 8.5.12 |
| PHP 8.4 | 8.4.26 ve öncesi | 8.4.27 |
| PHP 8.3 | 8.3.35 ve öncesi | 8.3.36 |
| PHP 8.2 | 8.2.34 ve öncesi | 8.2.35 |
PHP 8.1 ve daha eski sürümler de bu güvenlik açıklarından etkilenebiliyor. Ancak bu sürümler PHP projesinin resmi güvenlik desteği dışında bulunuyor.
Bununla birlikte Ubuntu, CloudLinux, Plesk, cPanel ve bazı ticari uzun süreli destek sağlayıcıları, eski PHP sürümleri için geriye dönük güvenlik yamaları (backport) yayımladı.
Bu nedenle özellikle eski PHP kullanan sistemlerde yalnızca sürüm numarasına bakarak sunucunun güvenli veya güvensiz olduğuna karar vermek doğru değil. Kurulu paketin üreticisi, derleme tarihi ve güvenlik güncelleme kayıtları da kontrol edilmeli.
cPanel, Plesk ve CloudLinux Sunucular Etkileniyor mu?
Evet. PHP2Shell yalnızca standart Linux kurulumlarını değil, hosting kontrol panelleri üzerinden yönetilen sunucuları da ilgilendiriyor.
cPanel / WHM
cPanel, EasyApache 4 üzerinden kullanılan PHP sürümleri için güvenlik güncellemeleri yayımladı. PHP 8.2, 8.3, 8.4 ve 8.5 sürümleri güncel güvenli sürümlere yükseltildi.
Ayrıca PHP 7.4, 8.0 ve 8.1 için de geriye dönük güvenlik yamaları sağlandı.
cPanel yöneticilerinin hem WHM sürümünü hem de EasyApache üzerinden yüklenmiş PHP paketlerini güncellemesi gerekiyor. Özellikle çoklu PHP sürümü bulunan sunucularda yalnızca varsayılan PHP sürümünün güncellenmesi yeterli değil.
Plesk Obsidian
Plesk de Linux ve Windows sunucularında kullanılan PHP sürümleri için gerekli güncellemeleri yayımladı.
Plesk tarafında yalnızca web sitelerinin kullandığı PHP sürümlerinin değil, kontrol panelinin kendi PHP bileşeninin de kontrol edilmesi gerekiyor.
Plesk Obsidian 18.0.81 Update 4 ve 18.0.80 Update 11 sürümlerinde panelin PHP motoru için gerekli düzeltmeler bulunuyor.
CloudLinux
CloudLinux özellikle paylaşımlı hosting altyapılarında kullanılan eski PHP sürümleri açısından önemli bir güncelleme süreci yürüttü.
PHP Selector üzerinden kullanılan alt-php paketleri ile EasyApache tabanlı ea-php paketleri için güvenlik yamaları yayımlandı.
CloudLinux tarafından PHP 5.2'den PHP 8.5'e kadar uzanan sürümler için düzeltilmiş paketler sağlandı.
Ancak eski bir PHP sürümünün bu açık için yamalanmış olması, o sürümün artık genel kullanım için güvenli olduğu anlamına gelmiyor. Destek dışı sürümlerin mümkün olduğunca güncel PHP sürümlerine taşınması gerekiyor.
Sunucumuzun Etkilenip Etkilenmediğini Nasıl Kontrol Edebiliriz?
Linux sunucularda ilk olarak kullanılan PHP sürümü kontrol edilebilir:
php -v
Ancak bu komut yalnızca terminalde kullanılan varsayılan PHP sürümünü gösterir.
cPanel, Plesk veya CloudLinux üzerinde birden fazla PHP sürümü bulunabileceğinden, web sitelerinin gerçekte hangi PHP yorumlayıcısını kullandığı ayrıca incelenmelidir.
Debian ve Ubuntu tabanlı sistemlerde kurulu PHP paketlerini görmek için:
dpkg -l | grep -E 'php[0-9]|php-fpm'
AlmaLinux, Rocky Linux ve CloudLinux sistemlerinde:
rpm -qa | grep -E 'php|alt-php|ea-php'
Plesk üzerinde belirli bir PHP sürümü şu şekilde kontrol edilebilir:
/opt/plesk/php/8.3/bin/php -v
cPanel üzerinde yüklü bir EasyApache paketinin güvenlik güncelleme kayıtları da incelenebilir:
rpm -q --changelog ea-php83-php-cli | grep 'CVE-2026-109618'
Burada amaç, yalnızca sistemde hangi PHP sürümünün bulunduğunu görmek değil, kullanılan PHP paketinin ilgili güvenlik yamalarını içerdiğini doğrulamaktır.
PHP2Shell Açığı Nasıl Kapatılır?
Kalıcı çözüm, PHP'nin güvenlik açığını giderecek şekilde güncellenmesidir.
Ubuntu ve Debian sistemlerde standart paket güncellemeleri şu şekilde gerçekleştirilebilir:
apt update
apt upgrade
RHEL tabanlı sistemlerde:
dnf update
Bu komutların çalıştırılması tek başına güncellemenin uygulandığını garanti etmez. Kullanılan PHP paketlerinin güvenlik yamasını içeren sürümlerinin ilgili depolarda mevcut olması ve gerçekten yüklenmesi gerekir.
Güncelleme sonrasında Apache, LiteSpeed veya PHP-FPM gibi ilgili servisler, kullanılan mimariye uygun biçimde yeniden başlatılmalıdır. Aksi takdirde eski PHP worker süreçleri çalışmaya devam edebilir.
Üretim sunucularında bu işlemlerin servis kesintisi ihtimali göz önünde bulundurularak planlanması önemlidir.
Güncelleme Yapılamıyorsa Geçici Olarak Ne Yapılabilir?
PHP geliştirici ekibi, güncellemelerin hemen uygulanamadığı sistemler için bazı geçici risk azaltma yöntemleri de duyurdu.
Bunlardan biri, PHP'nin session upload progress özelliğinin devre dışı bırakılmasıdır.
İlgili PHP yapılandırmasında:
session.upload_progress.enabled = Off
Bu ayar, CVE-2026-109619 için bilinen bazı saldırı yollarını engellemeye yardımcı olur.
Özellikle cPanel, Plesk ve CloudLinux sunucularında bu yapılandırmanın kullanılan bütün PHP sürümlerine ve ilgili PHP çalışma ortamlarına uygulanması gerekir.
Değişikliğin, uygulama tarafından geçersiz kılınamayacak sunucu veya PHP-FPM yapılandırması üzerinden yapılması ve ilgili worker süreçlerinin yeniden başlatılması önemlidir.
Ancak burada önemli bir ayrıntı var:
session.upload_progress.enabled = Off ayarı, PHP2Shell açıklarının tamamını kapatmaz.
Bu ayar yalnızca belirli saldırı senaryolarını sınırlandırır. CVE-2026-109618 için gerekli kalıcı düzeltmenin yerini tutmaz.
PHP ekibi ayrıca bellek sınırları ve HTTP istek boyutlarıyla ilgili ek koruma önerileri de yayımladı. Fakat bu ayarlar sunucunun çalışma biçimini etkileyebileceğinden, uygulanmadan önce sistem gereksinimleri değerlendirilmelidir.
23 Ekim 2026 tarihinde PHP ekibi, session upload progress özelliğiyle bağlantılı farklı bir risk için de ek bilgilendirme yaptı. CVE-2026-115560 olarak takip edilen bu durum nedeniyle, belirli session yapılandırmalarını kullanan uygulamalarda özellik geçici olarak kapalı tutulmalıdır.
Bu nedenle yalnızca bir PHP ayarını değiştirerek sunucunun tamamen korunduğunu varsaymak doğru bir yaklaşım değil.
Bir Saldırgan PHP2Shell Açığını Kullanırsa Ne Olabilir?
Başarılı bir saldırıda zararlı kod, PHP işleminin sahip olduğu işletim sistemi yetkileriyle çalışabilir.
Bunun sonucunda web sitesine ait dosyaların okunması veya değiştirilmesi, veritabanı bağlantı bilgilerinin ele geçirilmesi, hassas oturum bilgilerinin açığa çıkması ve uygulama üzerinde yetkisiz işlemler gerçekleştirilmesi mümkün olabilir.
PHP işleminin yetkilerinin sınırlandırılmış olması saldırının etkisini azaltabilir. Ancak bu, güvenlik açığının ortadan kalktığı anlamına gelmez.
Paylaşımlı hosting altyapılarında kullanıcı izolasyonu, dosya yetkileri, güncel güvenlik duvarı kuralları ve düzenli yedekleme bu nedenle önem taşır.
WAF sistemleri bilinen saldırı isteklerini engelleyebilir. Buna rağmen WAF kullanımı da PHP güvenlik güncellemelerinin yerine geçmez.
Sonuç
PHP2Shell, son dönemde PHP altyapılarını etkileyen en önemli güvenlik açıklarından biri olarak öne çıkıyor.
Bu zafiyetin dikkat çekici tarafı, web uygulamasındaki hatalı bir koddan veya güncel olmayan bir eklentiden kaynaklanmaması. PHP'nin kendi bellek yönetiminde ortaya çıkan bu sorun, uygulama tarafında herhangi bir güvenlik hatası bulunmasa bile sunucuyu riske atabiliyor.
Bu nedenle PHP kullanan sunucularda yalnızca CMS ve eklenti güncellemelerinin yapılması yeterli değil. PHP çalışma ortamının, hosting kontrol panelinin ve kullanılan paket depolarının da düzenli olarak kontrol edilmesi gerekiyor.
Özellikle cPanel, Plesk ve CloudLinux kullanılan sistemlerde mevcut tüm PHP sürümlerinin güvenlik yamalarını içerdiği doğrulanmalı, güncellemeler sonrasında ilgili servisler yeniden başlatılmalıdır.
PHP2Shell için kalıcı çözüm, güvenlik açığını giderecek şekilde güncellenmiş PHP paketlerini kullanmaktır. Geçici koruma ayarları ise güncelleme tamamlanana kadar riski azaltmaya yönelik ek önlemler olarak değerlendirilmelidir.