php2shell (CVE-2026-109618 / 109619) php -v ile değerlendirilemez: FPM, Docker ve dağıtımlarda sürüm numaraları nerede birbirinden ayrışıyor
CLI ile FPM sürümü, Docker etiketleri, dağıtım backport'ları ve paylaşımlı barındırmada nelerin kontrol edileceği

Bu sayfa, Japonca orijinalinden yapay zekâ ile çevrilmiştir. Farklılık olması durumunda geçerli olan sürüm Japonca olandır: 日本語
Web isteklerini işleyen PHP (PHP-FPM, Apache'nin mod_php'si, php-cgi, FrankenPHP, LiteSpeed) 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 sürümlerinden eskiyse, php2shell olarak bilinen CVE-2026-109618 ve CVE-2026-109619'dan etkilenir. Çözüm, bu sürümlerden birine (dağıtım paketlerinde düzeltilmiş pakete) yükseltmek ve süreçleri yeniden başlatmaktır. Kontrol etmeniz gereken yerel php -v çıktısı değil, “web'e fiilen hizmet veren PHP” ve “kurulu paket sürümü”dür.
Bu yazı, yalnızca sürüm numarasına bakarak karar vermenin yanlış sonuca götürdüğü dört noktaya odaklanır. Tüm rakamlar ve durum bilgileri 2026-10-22 itibarıyladır; her maddenin kaynakları yazının sonunda listelenmiştir.
2026-10-22 itibarıyla bilinenler
| Madde | Ayrıntı |
|---|---|
| CVE | CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) / CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp) |
| Önem derecesi | PHP duyurusunda ikisi de CVSS v4.0 9.2 (Critical) olarak derecelendirilmiştir |
| Düzeltilmiş sürümler | 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 (2026-10-21'de yayımlandı) |
| Etkilenen sürümler | Yukarıdaki düzeltilmiş sürümlerden önceki sürümler (GitHub advisory kayıtlarına göre) |
| Kapsam | Web isteklerini işleyen tüm PHP'ler. Duyuruda PHP-FPM, mod_php, php-cgi, FrankenPHP ve LiteSpeed adı geçiyor; en yüksek risk mod_php için belirtiliyor. GitHub advisory kayıtlarında istismar mod_php için gösterilmiş, FPM ve FrankenPHP ise “gösterilmedi” veya “koşullu” olarak listelenmiş. Gösterilmemiş olması güvenli olduğu anlamına gelmez; PHP'yi nasıl çalıştırırsanız çalıştırın düzeltilmiş sürüme yükseltin |
| 8.1 ve öncesi | PHP projesinden güncelleme yok. 7.4 / 8.0 / 8.1 için minimal kaynak backport'ları yayımlandı; bazı dağıtımlar ve LTS sağlayıcıları düzeltme sunuyor olabilir |
| 8.2 | Destek 2026-12-31'de sona eriyor (8.2.35 sürüm notlarına göre) |
PHP duyurusu “tek eksiksiz çözümün güncelleme olduğunu” belirtiyor. Güncelleme yapabilene kadarki dönem için önlemler yazının ilerleyen bölümünde ele alınıyor.
Tuzak 1: php -v ile web'e bakan PHP farklı olabilir
SSH üzerinden yazdığınız php -v, CLI PHP'nin sürümünü bildirir. Web isteklerini PHP-FPM süreçleri veya Apache'ye yüklenmiş mod_php işler; bunlar ayrı çalıştırılabilir dosyalar ve ayrı paketlerdir. PHP'nin yeni sürümünü yalnızca CLI için kurduysanız, yan yana birden çok sürüm çalıştırıyorsanız veya bir FPM havuzu farklı bir sürümü gösteriyorsa, php -v düzeltilmiş sürüm gösterse bile web tarafı eski kalabilir.
Web tarafındaki gerçek sürümü görmenin birkaç yolu var.
# Debian / Ubuntu'da FPM (adı sürüme göre verilir)
php-fpm8.3 -v
# RHEL ailesinde FPM
php-fpm -v
# mod_php'nin Apache'de yüklü olup olmadığını kontrol et
apachectl -M | grep -i php
En güvenilir yöntem, web üzerinden gerçekten çalışan PHP'nin kendi sürümünü bildirmesini sağlamaktır. Tahmin edilmesi zor bir adla geçici bir dosya koyun ve kontrol ettikten hemen sonra silin.
<?php echo PHP_VERSION, ' ', PHP_SAPI;
PHP_SAPI değeri fpm-fcgi ise PHP, FPM altında çalışıyordur; apache2handler mod_php, cgi-fcgi ise CGI demektir. phpinfo() çıktısını açık bırakmaktan kaçının; bu başlı başına bilgi sızdırır.
Yeniden başlatma da kolay gözden kaçan bir adımdır. Paket değiştirilse bile zaten çalışan php-fpm veya Apache süreçleri eski kodu çalıştırmaya devam edebilir. Bazı kurulumlar paket güncellemesinde otomatik yeniden başlar, bazıları başlamaz. Güncellemeden sonra FPM / Apache'yi yeniden başlatın ve web tarafındaki sürümü yukarıdaki yöntemlerle yeniden kontrol edin.
Tuzak 2: Docker'da etiket adına bakarak karar veremezsiniz
Resmî php imajında, içeriği değiştirilen 8.3 ve 8.3-fpm gibi “kayan etiketler” ile sürümü sabitleyen 8.3.30 gibi sabitlenmiş etiketler vardır.
- Bir kayan etiket Docker Hub'da düzeltilmiş sürüme geçirilse bile, yerel kopyanız yeniden pull edene kadar eski imaj olarak kalır. Çalışan konteynerler de yeniden oluşturulana kadar eski imajı kullanır.
FROM php:8.3-fpmiçeren birDockerfile, derleme önbelleğinde eski taban imaj duruyorsa yine eski tabanla derlenir. - Bir sabitlenmiş etiket, numarayı kendiniz yükseltene kadar sonsuza dek eski kalır.
Düzeltilmiş sürüm etiketlerinin yayımlanıp yayımlanmadığını Docker Hub API'siyle kontrol edebilirsiniz.
curl -s "https://hub.docker.com/v2/repositories/library/php/tags?name=8.3.36&page_size=100"
Dört sürüm hattı için 2026-10-22'de yapılan sorgunun sonuçları aşağıdadır (saatler UTC).
| Düzeltilmiş sürüm | Bulunan etiketler | Debian tabanlı etiketlerin (-fpm, -apache vb.) göründüğü zaman | Alpine tabanlı etiketler |
|---|---|---|---|
| 8.5.12 | 54 (RC1 dahil) | 2026-10-21 18:59–22:13 | 2026-10-21 22:12–10-22 01:05 |
| 8.4.27 | 54 (RC1 dahil) | 2026-10-21 22:09–22:11 | 2026-10-21 22:09–10-22 03:58 |
| 8.3.36 | 27 | 2026-10-21 22:04–22:06 | 2026-10-21 22:04–10-22 03:56 |
| 8.2.35 | 27 | 2026-10-21 21:59–22:01 | 2026-10-21 22:00–10-22 00:58 |
Bu kontrol sırasında, sayılara bakarak karar vermenin yanıltabileceği üç nokta ortaya çıktı.
- “Yakın zamanda güncellendi” ifadesi “düzeltildi” anlamına gelmez. Sabitlenmiş
8.3.35etiketi 2026-10-21 içinde yeniden derlenmişti, ancak içindekiPHP_VERSIONhâlâ 8.3.35'ti. Güncellenme zamanına değil, içindeki sürüme bakın. - Digest'ler farklı olsa da içerik aynı olabilir.
8.3ile8.3.36etiketlerinin digest'leri (çoklu mimari dizininin değeri) farklıydı, ancak amd64 imajı aynıydı ve ikisinde dePHP_VERSION=8.3.36idi. Aynı şekilde8.3-fpm/8.3.36-fpm,8.4-apache/8.4.27-apache,latest/8.5.12,8.5-fpmve8.2-fpmiçin de amd64 imajınınPHP_VERSIONdeğeri düzeltilmiş bir sürümdü. - 8.1 ve öncesi için düzeltilmiş resmî imaj yok.
8.1-fpmen son 2025-12-31'de güncellendi.
Yerel imajlarınızı ve çalışan konteynerlerinizi kontrol etmek için:
# Yerelde pull edilmiş bir imajın PHP sürümü
docker image inspect php:8.3-fpm --format '{{range .Config.Env}}{{println .}}{{end}}' | grep PHP_VERSION
# Yeniden pull edin ve konteynerleri yeniden oluşturun
docker compose pull
docker compose up -d
# Kendi imajınızı derliyorsanız, tabanı yeniden pull edip sonra derleyin
docker compose build --pull
# Çalışan bir konteynerin içindeki sürüm
docker compose exec app php -r 'echo PHP_VERSION, PHP_EOL;'
Son komuttaki app yerine kendi servis adınızı yazın. Her resmî imaj tek bir PHP_VERSION ile derlenir; dolayısıyla konteynerin içindeki CLI sürümü, o konteynerin FPM / Apache sürümüyle aynıdır (Tuzak 1, PHP doğrudan ana makineye kurulduğunda geçerlidir).
FrankenPHP, PHP'yi içine gömer; bu nedenle FrankenPHP sürümü ile gömülü PHP sürümü farklı numaralardır. 2026-10-21'de yayımlanan FrankenPHP 1.13.2'nin sürüm notlarında, Docker imajlarının PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 ile, statik ikili dosyaların ise PHP 8.5.12 ile derlendiği belirtiliyor.
Tuzak 3: Dağıtım paketleri “eski numarayla düzeltilmiş” olur
Ubuntu ve RHEL, yalnızca düzeltmeleri eski sürümlere taşır (backport). php -v çıktısındaki numara eski kalır; bu yüzden “8.3.36'dan düşük, dolayısıyla savunmasız” biçimindeki sayısal bir kontrol, düzeltilmiş bir sistemi de savunmasız olarak işaretler. Tersine, numaraya bakıp rahatlamak da mümkün değildir. Kararı paket sürümüne ve her dağıtımın güvenlik takipçisine göre verin.
2026-10-22 itibarıyla her takipçide listelenen düzeltilmiş paketler (iki CVE için de aynı):
| Dağıtım | Paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|---|
| Ubuntu 22.04 (jammy) | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| Ubuntu 24.04 (noble) | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 26.04 (resolute) | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu (stonking) | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 14.04 / 16.04 / 18.04 / 20.04 | php5 / php7.0 / php7.2 / php7.4 | Ubuntu Pro ile sağlanıyor (Legacy Support dahil) | USN-8948-2 |
| Debian 12 (bookworm) | php8.2 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| Debian 13 (trixie) | php8.4 | 8.4.27-1~deb13u1 | DSA-6574-1 |
| RHEL 10 | php / php8.4 | 8.3.36-1.el10_2 / 8.4.27-1.el10_2 | Red Hat |
| RHEL 9 | php (varsayılan) | 8.0.30-8.el9_8.1 | Red Hat |
| RHEL 9 | php modülü 8.2 / 8.3 | 8.2.35-1.module+el9.8.0… / 8.3.36-1.module+el9.8.0… | Red Hat |
| RHEL 8 | php modülü 7.4 / 8.2 | 7.4.33-8.module+el8.10.0… / 8.2.35-1.module+el8.10.0… | Red Hat |
Bu tablo, numaranın neden tek başına yetmediğini doğrudan gösteriyor. Ubuntu 24.04'ün düzeltilmiş PHP'si 8.3.6 ile başlayan bir sürümdür ve upstream'in 8.3.36'sından çok düşüktür. RHEL 9'un varsayılan PHP'si, upstream artık 8.0 için düzeltme yayımlamadığı hâlde 8.0.30'da kalarak düzeltilmiştir. Debian ise upstream ile aynı numaralara (8.2.35 / 8.4.27) geçmiştir.
Bazı paketler henüz düzeltilmedi (2026-10-22 itibarıyla).
- RHEL 9 php modülü 8.4, “etkileniyor, düzeltme yok” olarak listelenmiştir.
- Debian forky'de (testing) php8.4 8.4.26-1 olup “vulnerable” olarak işaretlenmiştir. sid'deki (unstable) php8.4 8.4.27-1'dir ve düzeltilmiştir.
Kendi sunucunuzu kontrol etmek için örnek komutlar:
# Debian / Ubuntu: kurulu sürüm ve edinilebilir sürüm
apt-cache policy php8.3-fpm libapache2-mod-php8.3
# Ubuntu: bu CVE'nin bu sunucuda düzeltilip düzeltilmediği
pro fix CVE-2026-109618
pro fix CVE-2026-109619
# RHEL ailesi: bu CVE'yi düzelten bir güncelleme olup olmadığı ve kurulu sürüm
dnf updateinfo list --cve CVE-2026-109618
rpm -q php-fpm php-cli
Paket adını (php8.3-fpm vb.) kendi ortamınıza göre uyarlayın. Görünen sürümü yukarıdaki tablodaki veya takipçideki “düzeltilmiş sürüm” ile karşılaştırın; aynıysa ya da daha yüksekse düzeltme yüklüdür. Ardından Tuzak 1'de anlatılan yeniden başlatma ve web tarafı kontrolünü tamamlayın.
PHP'yi dağıtımın kendi paketleri yerine üçüncü taraf bir depodan kuruyorsanız, o deponun güncellemelerini takip etmeniz gerekir. PHP duyurusu, gönüllülerce işletilen rpms.remirepo.net deposunda açıklama gününde güncelleme bulunmayacağını belirtiyor ve dağıtım paketlerine ya da kendi derlemelerinize geçmeyi öneriyor.
Tuzak 4: Paylaşımlı barındırma ve yönetilen ortamlarda PHP'yi kendiniz yükseltemezsiniz
Paylaşımlı barındırmada ve yönetilen PHP ortamlarında PHP çalışma zamanını sağlayıcı değiştirir. Burada da numara tek başına yetmez: sağlayıcı PHP'yi kendisi derliyorsa veya düzeltmeleri backport ediyorsa sürüm numarası eski kalabilir.
Kendiniz yapabileceğiniz üç şey var.
- Web tarafındaki sürümü kontrol edin. Tuzak 1'deki geçici dosyayla
PHP_VERSIONvePHP_SAPIdeğerlerini yazdırın, ardından hemen silin. Kontrol panelinde bir PHP sürüm seçici varsa hangi sürümü seçtiğinizi de not edin. - Sağlayıcının duyurusunu okuyun; yoksa sorun. Şunu sorun: “Paketimdeki hangi PHP sürümleri için CVE-2026-109618 ve CVE-2026-109619 düzeltmeleri ne zaman uygulanacak (veya uygulandı mı)?” Sürüm numarası yerine CVE numarasıyla sormak, backport'ları da kapsayan bir yanıt almanızı sağlar.
- Desteklenmeyen bir sürüm seçtiyseniz yükseltin. PHP projesi 8.1 ve öncesi için düzeltme yayımlamıyor, 8.2'nin desteği de 2026-12-31'de bitiyor. Sağlayıcı düzeltmeleri backport etmediyse, sürüm değiştirmek güvenilir yoldur.
Barındırma sağlayıcılarına göre durum (2026-10-22 itibarıyla)
Paylaşımlı barındırmada PHP çalışma zamanını normalde sağlayıcı günceller ve birçok sağlayıcının duyurusunda “kullanıcılardan işlem gerekmediği” belirtilir. Kullanıcıların yapacağı iki şey var: sağlayıcılarının resmî duyurusunu kontrol etmek ve kontrol panelinde eski bir PHP sürümü seçtilerse, duyurunun önerdiği sürüme (düzeltilmiş sürümü olan bir sürüme) geçip geçmeyeceklerine karar vermek.
Aşağıdaki tablo yalnızca her sağlayıcının resmî sayfalarında (duyurular ve bakım bilgileri) yazanları, duyuru ifadelerini başka sözcüklerle aktararak özetler. Duyurular gelişmelere göre güncellenir; gerçek durumu mutlaka belirtilen resmî sayfadan doğrulayın.
| Sağlayıcı / hizmet | Resmî duyurunun ana noktaları | Duyuru tarihi/saati | Kaynak |
|---|---|---|---|
| エックスサーバー | “PHP 8.2–8.5 için, etkilenen tüm sunuculara düzeltme yamasının uygulanması tamamlandı.” Eski sürümler için duyuruda, “bazı sürümlerde düzeltme yamaları hazır olup doğrulama tamamlandıkça sırayla uygulanacak” ve diğer eski sürümler üzerinde de çalışıldığı belirtiliyor | 10/22 6:45 itibarıyla yazıldığı şekliyle (sayfa 13:15'e kadar güncellendi) | メンテナンスの進捗状況 |
| シン・レンタルサーバー | Duyurular sayfasında Xserver ile aynı “bakım ilerleme durumu” yer alıyor, ancak Shin Rental Server'ın PHP durumunu özellikle ele alan bir ifade bulamadım (destekle teyit edin) | - | お知らせ |
| ConoHa WING | “Şu anda kullandığınız PHP sürümünü koruyarak güvenlik yamalarını uyguluyoruz.” Duyuruya göre kullanıcıların genellikle sürüm değiştirmesi gerekmiyor, ancak PHP 5.x ve 7.x için değişiklik gerekebilir. Dosya yöneticisi ve webmail önlem olarak geçici olarak durduruldu; web sitesi görüntüleme ve e-posta gönderme/alma normal şekilde sürüyor | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| さくらのレンタルサーバ | “Kontrol panelimizden seçilebilen tüm PHP sürümleri için güvenlik açığına yönelik çalışmayı tamamladık.” “Müşterilerden acil bir işlem beklenmediğini” belirtiyor ve bundan sonra desteklenen en son sürüme geçilmesini öneriyor. Duyuruya göre webmail 10/22 13:45'te ele alındı, phpMyAdmin üzerinde ise çalışma sürüyor | 10/22 (13:45'te güncellendi) | PHPの脆弱性(CVE-2026-109618、CVE-2026-109619)への対応状況について |
| ロリポップ! | Düzeltilmiş sürümlerin yayımlanmasından önce yapılan önleyici bakıma ilişkin duyuru (hizmet sitesi, kullanıcı sayfaları vb. sırayla durdurulacak; siteler önceden haber verilmeden durdurulabilir veya kısıtlanabilir). 10/22 itibarıyla PHP düzeltmesinin tamamlandığını bildiren bir duyuru bulamadım (destekle teyit edin) | 10/21 | 【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| ヘテムル | “PHP 8.x ve PHP 7.4 için resmî düzeltilmiş sürümleri uyguladık”; diğer sürümler için “resmî düzeltmeye dayanarak kendi düzeltmelerimizi yaptık.” “Tüm sürümlerde bazı işlevler (session.upload_progress) devre dışı bırakıldığı” için kullanıcılardan sitelerinin çalıştığını kontrol etmeleri isteniyor. Eski sürümler başka düzeltme almayabileceğinden duyuruda daha yeni bir sürüme geçilmesi öneriliyor | 10/21 19:44'te yayımlandı; 10/22 12:18 ve 13:20'de güncellendi | 【一部完了】【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| mixhost | “PHP düzeltme paketlerinin uygulanması 22 Ekim 2026'da yaklaşık 10:18'de tamamlandı.” “PHP sürüm numarası değiştirilmeden uygulandı”; “müşterilerden herhangi bir işlem gerekmiyor.” Duyuru, PHP 8.2'nin altındaki sürümleri kullananlara desteklenen bir sürümü (8.2 veya üzeri) kullanmalarını öneriyor | 10/22 | 【完了】PHPの重大な脆弱性への対応について |
| KAGOYA | Kiralık sunucu hizmetinde PHP 8.2–8.5, düzeltilmiş sürümler doğrulandıktan sonra sırayla güncellenecek (hedef sürümler hâlâ netleştiriliyor). Yönetilen özel, paylaşımlı ve WordPress'e özel sunucular için kalıcı düzeltme hâlâ planlanıyor; geçici önlem olarak duyuruda siteleri çevrimdışı almayı veya erişimi kısıtlamayı düşünmek öneriliyor | 10/21 18:20'de yayımlandı; 10/22 10:35'te güncellendi | PHPの脆弱性に関する当社サービスへの影響について |
| Zenlogic(IDCフロンティア) | Düzeltmeler acil bakım sırasında uygulandı (10/21 22:00–10/22 18:00; bitiş saati değişebilir). PHP 5.3 en son sürüme güncellenecek ve geri alınamayacak; 7.4 ve 8.1 güncellenebilir. Duyuruya göre güncellemeden sonra görüntüleme veya davranış sorunları çıkarsa düzeltmenin uygulama tarafında yapılması gerekiyor | 10/21 | 【ホスティング】緊急メンテナンス作業のお知らせ |
| ColorfulBox | “Şu anda kullandığınız PHP sürümünü koruyarak sunucu tarafında yamalı sürümlere güncellemeyi tamamladık.” Duyuruda “müşterilerin PHP sürümlerini kendilerinin değiştirmesine veya geçiş yapmasına gerek olmadığı” belirtiliyor | 10/22 | 【重要】PHPの脆弱性に対するセキュリティアップデート完了のお知らせ |
| お名前.com レンタルサーバー | “Şu anda kullandığınız PHP sürümünü koruyarak güvenlik yamalarını uyguluyoruz.” Duyuruya göre sürüm değişikliği genellikle gerekmiyor, ancak PHP 5.x ve 7.x için gerekebilir. Dosya yöneticisi ve webmail önlem olarak geçici olarak durduruldu | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| CORESERVER(V2) | “Sunduğumuz tüm PHP sürümleri için güvenlik açığına yönelik çalışmayı tamamladık”; “müşteri tarafında PHP sürümünü değiştirmek gibi bir işlem gerekmiyor.” Bakım 10/22 0:00–11:13 arasında yapıldı ve tamamlandığı belirtiliyor | 10/21'de yayımlandı (10/22'de tamamlandı) | PHP脆弱性の対応(CORESERVER V2)【完了】 |
| XREA | “PHP 7.4 ve üzeri sürümler (7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5) için güvenlik açığına yönelik çalışmayı tamamladık.” Bu sürümleri kullananların sürüm değiştirmesi gerekmiyor. Duyuruda 7.4'ün altındaki sürümlerden söz edilmiyor | 10/21'de yayımlandı (10/22 0:50'de tamamlandı) | PHP脆弱性の対応(XREA)【完了】 |
| バリューサーバー | “PHP 7.4 ve üzeri sürümler için güvenlik açığına yönelik çalışmayı tamamladık.” Duyuruya göre bu sürümleri kullananların sürüm değiştirmesi gerekmiyor | 10/21'de yayımlandı (10/22 0:50'de tamamlandı) | PHP脆弱性の対応(VALUESERVER)【完了】 |
| ABLENET | “PHP'de tespit edilen iki güvenlik açığıyla ilgili olarak kiralık sunucu ortamımız için ilk güvenlik güncellemelerini gerçekleştirdik.” Duyuruda hangi sürümlerin kapsandığı veya kullanıcıların işlem yapması gerekip gerekmediği belirtilmiyor | 10/22 13:04 | PHPの脆弱性に関するセキュリティアップデートの対応について |
| WebARENA(レンタルサーバー) | 10/22 itibarıyla resmî bir duyuru bulamadım (destekle teyit edin) | - | WebARENA お知らせ(2026年) |
Resmî duyuruyu bulamadığım veya açamadığım yerlerde tabloda “teyit edilemedi” ya da “bulunamadı” yazıyor. Orada bilgi bulunmaması, sağlayıcının yanıt vermediği anlamına gelmez. Doğrudan sağlayıcınızın duyurularından ve destek kanalından teyit edin.
Hemen güncelleyemediğiniz sürede alınabilecek önlemler
PHP duyurusu, güncelleme yapılana kadar saldırı yüzeyini azaltan ayarları listeliyor. Ancak duyurunun kendisi bunların “sizi güvenli kılmadığını” açıkça belirtiyor. Başlıcaları şunlar:
- CVE-2026-109619 için: php.ini, FPM havuzu veya sunucu yapılandırmasında
session.upload_progress.enabled=0ayarlayın ve tüm worker'ları yeniden başlatın (ini_set()ve FPM'in.user.inidosyası bunun için işe yaramaz). PHP 8.5'te ayrıcafatal_error_backtraces=0ayarlayın. - CVE-2026-109618 için:
memory_limit=-1değerini uygulamanın geçersiz kılamayacağı bir biçimde ayarlayın vepost_max_sizedeğerini düşürün (yükleme yoksa 8M, varsa 32M).RLIMIT_AS/RLIMIT_DATAdeğerlerini bunun yerine kullanmayın.
Birleşik Krallık NCSC'si, hemen güncellenemeyen veya önlem alınamayan sistemlerin çevrimdışı alınmasının düşünülmesini ve güncelleme ya da önlem uygulamadan önce ele geçirilme belirtilerinin kontrol edilmesini öneriyor.
Kaynaklar (2026-10-22'de kontrol edildi)
- php.net: Security advisory: Critical remote code execution vulnerabilities, update now (2026-10-21)
- php.net: Upcoming Critical PHP Security Release (2026-10-20)
- php.net: PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 sürüm duyuruları
- GitHub: GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Docker Hub: resmî php imajı
- FrankenPHP 1.13.2 sürüm notları
- Debian Security Tracker: CVE-2026-109618 / CVE-2026-109619
- Ubuntu: CVE-2026-109618 / CVE-2026-109619 / USN-8948-1 / USN-8948-2
- Red Hat: CVE-2026-109618 / CVE-2026-109619 (düzeltilmiş paket sürümleri için Red Hat'in VEX verileri)
- NCSC: Critical security issue affecting PHP
Sık sorulan sorular
php -v düzeltilmiş bir sürüm gösteriyorsa php2shell'e (CVE-2026-109618 / 109619) karşı korunuyor muyum?
Her zaman değil. php -v yalnızca CLI PHP'nin sürümünü bildirir. Web isteklerini işleyen PHP-FPM veya Apache'nin mod_php'si ayrı bir çalıştırılabilir dosya ve ayrı bir paket olabilir. FPM sürümünü php-fpm8.3 -v ile (RHEL ailesinde php-fpm -v) kontrol edin. Alternatif olarak, PHP_VERSION ve PHP_SAPI değerlerini yazdıran geçici bir dosyayı web üzerinden açın ve kontrol ettikten hemen sonra silin. Güncellemeden sonra FPM veya Apache'yi yeniden başlatmadıysanız eski kodu çalıştırmaya devam ediyor olabilirler.
Docker'ın php:8.3-fpm imajını kullanıyorsam php2shell düzeltilmiş olur mu?
2026-10-22 itibarıyla Docker Hub'daki php:8.3-fpm, PHP 8.3.36'ya geçirilmiştir. Ancak yerel imajınız yeniden pull edene kadar eski kalır, çalışan konteynerler de yeniden oluşturulana kadar eski imajı kullanmayı sürdürür. docker compose pull ve docker compose up -d komutlarını çalıştırın (kendi imajınızı derliyorsanız docker compose build --pull). Ardından konteynerin içinde php -r 'echo PHP_VERSION;' çalıştırıp sürümün 8.3.36 veya üzeri olduğunu doğrulayın. 8.3.30 gibi sabitlenmiş etiketler, numarayı kendiniz yükseltene kadar eski kalır.
Ubuntu ve RHEL hâlâ PHP 8.3.6 veya 8.0.30 gösteriyor. php2shell'den etkileniyorlar mı?
Yalnızca sürüm numarasına bakarak anlaşılamaz. Ubuntu ve RHEL düzeltmeleri eski sürümlere backport eder; bu yüzden bir paket düzeltilmiş olsa da numarası eski kalabilir. 2026-10-22 itibarıyla düzeltme, Ubuntu 24.04'te php8.3 8.3.6-0ubuntu0.24.04.13 paketinde, RHEL 9'da php 8.0.30-8.el9_8.1 paketinde yer alıyor. Kurulu paket sürümünüzü (apt-cache policy veya rpm -q) dağıtımınızın güvenlik takipçisindeki düzeltilmiş sürümle karşılaştırın. Ubuntu'da pro fix CVE-2026-109618, RHEL ailesinde dnf updateinfo list --cve CVE-2026-109618 ile de kontrol edebilirsiniz.