Ne oldu, kısaca
- CVE-2026-109618: PHP bellek sınırına (memory_limit) çarpınca isteği yanlış anda kesiyor, iç durum yarım kalıyor. Tetikleyici, özel hazırlanmış bir multipart/form-data (dosya yükleme) isteği.
- CVE-2026-109619: Bir istekten kalan global durum sonraki istekte kullanılıyor (use-after-free). Doğrulanmış yollardan biri session upload progress, diğeri PHP 8.5'te fatal_error_backtraces.
- Resmî puan CVSS 4.0 9.2. İlk dolaşan 10.0 puanı yanlıştı.
- Etkilenen kod PHP 5.4'e (2012) kadar gidiyor. mod_php en açık olanı; PHP-FPM ve LiteSpeed (lsphp) da etkilenebilir.
- Bellek sızıntısı da var: aynı işçideki başka isteklerin verisi (oturum, şifre, API anahtarı) PHPSESSID çerezinde dışarı çıkabiliyor.
- 8.5 → 8.5.12 yamalı
- 8.4 → 8.4.27 yamalı
- 8.3 → 8.3.36 yamalı
- 8.2 → 8.2.35 yamalı
- 8.1 / 8.0 / 7.4 → resmî sürüm yok, yalnız dağıtıcılara backport verildi. Panel/dağıtım paketine bakın
- 5.4 – 7.3 → PHP projesinden düzeltme yok. Bazı depolar kendi yamasını sunuyor
Panel bazında hızlı güncelleme
- cPanel (EasyApache 4): ea-php82–85 yamalı, ea-php74/80/81'e backport geldi. Eski sistemlerde dnf yerine yum. Sonra Apache ve PHP-FPM yeniden başlatılır.
dnf upgrade 'ea-php*'
- Plesk: Tools & Settings → Updates ya da komut satırından aşağıdaki komut. Panelin kendi PHP'si için ayrı hotfix var. Windows tarafı Linux'tan geç geldi.
plesk installer update
- DirectAdmin: CustomBuild 8.2–8.5'i yükseltiyor, 8.1/8.0/7.4 için yama ekledi. Eski usulde custombuild dizininde ./build update ve ./build php.
da build update da build php
- CyberPanel / LiteSpeed (lsphp): Depolar gecikmeli geldi, önce aday sürüme bakın. Güncelledikten sonra lsphp süreçlerini öldürmek şart; LiteSpeed'i yeniden başlatmak PHP süreçlerini yenilemiyor.
apt-cache policy lsphp83 apt update && apt install --only-upgrade 'lsphp8*' # Ubuntu dnf upgrade 'lsphp*' # Alma / RHEL pkill lsphp
- Ubuntu (ana depo): Dalınıza göre paket adını değiştirin. 18.04/20.04 yalnız Ubuntu Pro ESM ile. İkinci satır yamanın gelip gelmediğini gösterir.
sudo apt update && sudo apt install --only-upgrade 'php8.3*' zgrep -E 'CVE-2026-10961[89]' /usr/share/doc/php8.3-fpm/changelog.Debian.gz
- AlmaLinux 8/9/10: Yamalı paketler 21 Ekim akşamı depoya girdi.
sudo dnf upgrade 'php*' dnf updateinfo list --security | grep php
- ppa
ndrej/php / Sury: dört dal yamalı. Ayna geç güncellendiyse tekrar deneyin, sürümü dpkg -l ile doğrulayın.
- Tüm PHP işçilerini yeniden başlatın. mod_php kullanıyorsanız reload değil, tam restart (systemctl restart apache2 / httpd).
systemctl restart php8.3-fpm
- Eski kütüphaneyi tutan süreç kaldı mı bakın. Boş çıktı iyi.
sudo grep -lE ' /(usr|lib|opt).*\(deleted\)$' /proc/[0-9]*/maps
- php -v yalnız CLI'ı gösterir. Web tarafının sürümünü geçici bir PHP_VERSION sayfasıyla HTTP üzerinden görün, sonra sayfayı hemen silin.
- Upload progress'i kapatın. php.ini'de ya da FPM havuzunda php_admin_flag ile yapın; ini_set() ve .user.ini geç kalıyor, işe yaramıyor. 109618'i kapatmaz. PHP 8.5'te ikinci satır da gerekli.
session.upload_progress.enabled = 0 fatal_error_backtraces = 0
- Dosya yüklemesi kullanmayan sitelerde multipart/form-data isteklerini web sunucusunda reddetmek. Yükleme formlarını, bazı ödeme/iletişim formlarını bozar; test edin.
- post_max_size ve ön uçtaki istek boyutu, alan ve başlık sınırlarını düşürmek. Exploit sınır içinde kalarak da çalışabiliyor.
- RLIMIT_AS / RLIMIT_DATA ile bellek sınırlamayın; savunmasız yolu tam da bu tetikliyor.
- WAF (Cloudflare kuralları ücretsiz planda da varsayılan açık): yalnız WAF'tan geçen trafiği korur. Origin IP'niz doğrudan erişilebiliyorsa koruma yok.
- Uygulama içi "bakım modu" işe yaramaz, PHP yine isteği alıyor. En güvenli geçici yol siteyi statik bakım sayfasına almak.
Saldırıya uğradım mı? Kısa kontrol listesi
Resmî IOC listesi henüz yok. Göstergenin olmaması temiz olduğunuzu kanıtlamaz.
- Logları önce kopyalayın, temizlik yapmayın.
- 20 Ekim'den bu yana yükleme formu olmayan adreslere gelen POST multipart istekleri, ardından "Allowed memory size exhausted" ve art arda 500'ler.
- Yanıtlarda olağandışı uzun ya da bozuk PHPSESSID çerezleri.
- php-fpm, lsphp, apache2/httpd altından başlayan sh, bash, curl, wget, nc, python, perl süreçleri.
- 20 Ekim sonrası değişen PHP dosyaları (yolu kendi web kökünüze göre değiştirin):
find /var/www -name '*.php' -newermt '2026-10-20' -type f
- uploads/images altında PHP dosyası, /tmp ve /dev/shm'de çalıştırılabilir dosya, yeni cron işi, yeni yönetici hesabı, authorized_keys değişikliği, .htaccess ya da .user.ini'ye auto_prepend_file eklemesi.
- Şüphe varsa: sunucuyu ele geçirilmiş say, veritabanı şifreleri, .env anahtarları, ödeme ve SMTP bilgileri ve TLS anahtarları dahil sırları döndür, tüm oturumları geçersiz kıl. Kişisel veri etkilendiyse KVKK'ya 72 saat içinde bildirim gerekiyor.
Türkiye tarafı
Siber Güvenlik Başkanlığı ulusal ölçekte tarama başlattı, kamu kurumları, kritik altyapı ve özel sektöre acil uyarı gönderdi (bildirim TR-26-1372). Önerileri: etkilenen sistemleri belirleyin, hemen yükseltin, yönetim arayüzlerini güvenilir IP'lere kısıtlayın, yurt dışı erişimi gerekmeyen sistemlerde uluslararası trafiği kapatın.
İstismar durumu kaynağa göre değişiyor: Cloudflare ve bazı araştırmacılar deneme gördüğünü söylüyor; CISA, BSI ve PHP güvenlik ekibi yayın anında doğrulanmış istismar bildirmedi. Yama farkı açık olduğu için bu hızla değişebilir, beklemeye değmez.
Sürüm tablosu, dağıtım bazında paket sürümleri ve kaynak listesiyle Türkçe derleme: https://alestaweb.com/haber/php2shel...asil-kapatilir
Panelinizde ya da dağıtımınızda takıldığınız yer olursa yazın, bildiğim kadarıyla yardımcı olayım.
ndrej/php / Sury: dört dal yamalı. Ayna geç güncellendiyse tekrar deneyin, sürümü dpkg -l ile doğrulayın.