21 Ekim 2026’da PHP, iki kritik güvenlik açığı için acil bir güvenlik güncellemesi yayınladı. CVE-2026-109618 ve CVE-2026-109619 numaralı bu açıklar birlikte PHP2Shell olarak anılıyor ve saldırganın hiçbir giriş yapmadan sunucunuzda kod çalıştırmasına imkân tanıyabiliyor. WordPress, WooCommerce, Joomla ve Drupal sitelerinin tamamı PHP ile çalıştığı için bu konu, web sitesi olan neredeyse herkesi ilgilendiriyor.
Bu yazıda PHP2Shell’in ne olduğunu, sitenizin etkilenip etkilenmediğini nasıl anlayacağınızı ve bugün yapmanız gerekenleri adım adım anlatıyorum. En sonda da işin SEO tarafına, yani hacklenen bir sitenin Google’da neler yaşadığına değiniyorum.
Kısaca: PHP2Shell hakkında bilmeniz gerekenler
- Ne: PHP’nin çekirdeğinde iki kritik bellek güvenliği açığı. CVSS puanı 9,2 (kritik).
- Etkisi: Kimlik doğrulama olmadan uzaktan kod çalıştırma ve sunucu belleğinden şifre, oturum anahtarı, API anahtarı gibi bilgilerin sızdırılması.
- Kimler etkileniyor: Web isteklerine cevap veren hemen hemen her PHP kurulumu: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP ve LiteSpeed.
- Çözüm: PHP’yi yamalı bir sürüme güncellemek: 8.5.12, 8.4.27, 8.3.36 veya 8.2.35.
- Aciliyet: İstismar girişimleri görüldü. Bekleme lüksü yok.
PHP2Shell nedir?
Açıklar, Wiz Research ekibi tarafından yapay zeka modellerinin de yardımıyla Ağustos 2026’da bulundu ve PHP güvenlik ekibine bildirildi. Yama ve kamuya açıklama 21 Ekim 2026’da geldi.
Sorunun özü, PHP’nin bir istek sırasında oluşan ölümcül hataları (özellikle bellek yetmediğinde verilen “out of memory” hatasını) nasıl temizlediğiyle ilgili. Basitçe anlatmak gerekirse:
- CVE-2026-109618: Bellek yetersizliği hatası bir işlemi yarıda kestiğinde istek verileri yarım kalabiliyor. Temizlik adımları bu bozuk veriyi geçerliymiş gibi işliyor ve bu durum uzaktan kod çalıştırmaya giden bir yol açıyor.
- CVE-2026-109619: Bir isteğe ait bellek serbest bırakıldıktan sonra bile PHP bazı yerlerde bu belleği göstermeye devam ediyor. Aynı PHP işçisinin (worker) karşıladığı bir sonraki istek, bu “bayat” veriye erişebiliyor. Bilinen adıyla bir use-after-free açığı.
Araştırmacılar bu zincirle hem sunucuda kod çalıştırmayı hem de PHP işçisinin belleğindeki verileri dışarı sızdırmayı gösterdi. Bu bellek; veritabanı şifreleri, oturum token’ları ve API anahtarları gibi hassas bilgiler içerebiliyor.
Neden bu kadar ciddi?
Çoğu güvenlik açığı belirli bir eklentiye ya da belirli bir koda bağlıdır. PHP2Shell’i farklı kılan birkaç nokta var:
- Uygulamadan bağımsız: Wiz’e göre istismar uygulamanın ne yaptığına bağlı değil. Etkilenen bir PHP sürümünde basit bir “Hello World” sayfası bile savunmasız olabiliyor. Yani WordPress’iniz ve eklentileriniz tamamen güncel olsa bile risk ortadan kalkmıyor.
- Tek istekle, kodunuz çalışmadan: PHP’nin açıklamasına göre gösterilen bir istismar, uygulama kodu daha çalışmadan tetiklenebiliyor. Bu özellikle Apache mod_php kullanan sunucular için en yüksek risk.
- Çok geniş bir kapsam: Araştırmacılar son on yılın neredeyse tüm PHP sürümlerinin en az bir açıktan etkilendiğini söylüyor.
- Saldırılar başladı: Amazon’un tuzak sistemleri, açık kamuya duyurulmadan dört gün önce, 17 Ekim’de bir istismar girişimi kaydetti. Cloudflare saldırı trafiği gördüğünü ve korumalarını atlatma denemelerini raporladı. İngiltere Ulusal Siber Güvenlik Merkezi (NCSC), hemen güncellenemeyen sistemlerin geçici olarak çevrimdışı alınmasını değerlendirmeyi öneriyor.
Hangi PHP sürümleri güvende?
PHP’nin yayınladığı yamalı sürümler şunlar:
| PHP dalı | Yamalı sürüm |
|---|---|
| PHP 8.5 | 8.5.12 ve üzeri |
| PHP 8.4 | 8.4.27 ve üzeri |
| PHP 8.3 | 8.3.36 ve üzeri |
| PHP 8.2 | 8.2.35 ve üzeri |
| PHP 8.1, 8.0, 7.4 ve öncesi | Resmi destek yok |
PHP 8.1 ve daha eski sürümler artık PHP projesi tarafından desteklenmiyor. 7.4, 8.0 ve 8.1 için yalnızca PHP’yi kaynaktan derleyenlere yönelik sınırlı yamalar yayınlandı. Paylaşımlı hostingde bu yamaları kendiniz uygulamanız mümkün değil. Bu yüzden eski bir sürüm kullanıyorsanız pratikteki çözüm, desteklenen bir sürüme geçmek ya da hosting firmanızın yamalı bir paket sunduğunu teyit etmek.
Önemli bir not: Linux dağıtımları ve bazı hosting panelleri yamayı eski sürüm numarasını değiştirmeden uygulayabiliyor. Yani sürüm numarası tek başına her zaman doğru cevabı vermiyor. Emin olmak için hosting firmanıza “kullandığım PHP paketi PHP2Shell yamasını içeriyor mu?” diye sormanız en sağlıklısı.
Sitenizin PHP sürümünü nasıl öğrenirsiniz?
- WordPress’te: Yönetim paneli > Araçlar > Site Sağlığı > Bilgi sekmesi > Sunucu bölümünde “PHP sürümü” satırına bakın.
- cPanel’de: “PHP Sürümünü Seç” ya da “MultiPHP Yöneticisi” ekranında alan adınızın hangi sürümü kullandığını görebilirsiniz.
- Sunucu yönetiyorsanız: Komut satırındaki
php -vçıktısı web isteklerini karşılayan PHP ile aynı olmayabilir. Web sunucusunun kullandığı PHP-FPM ya da LiteSpeed sürümünü ayrıca kontrol edin.
Ne yapmalısınız? Adım adım kontrol listesi

1. Önce yedek alın
Herhangi bir değişiklikten önce dosyalarınızın ve veritabanınızın güncel bir yedeğini alın. PHP sürümünü değiştirmek, eski bir tema ya da eklentinin bozulmasına yol açabilir. Yedek, geri dönüş yolunuzdur.
2. Hosting firmanızla konuşun
Paylaşımlı hostingdeyseniz PHP’yi siz değil hosting firmanız günceller. Destek ekibine şunları sorun: Sunucudaki PHP paketleri PHP2Shell (CVE-2026-109618 ve CVE-2026-109619) için yamalandı mı? Sunucu seviyesinde ek bir koruma uygulandı mı? Bazı firmalar, SiteGround gibi, açıklama öncesinde sunucu seviyesinde önlem aldıklarını duyurdu.
3. Desteklenen bir PHP sürümüne geçin
Siteniz PHP 8.1 veya daha eski bir sürümdeyse PHP 8.3 ya da 8.4’e geçmeyi planlayın. Mümkünse önce bir test (staging) kopyasında deneyin. Tema ve eklentilerinizin yeni sürümle uyumlu olduğunu, sitenin ön yüzünün ve yönetim panelinin sorunsuz açıldığını, formların çalıştığını kontrol edin. Sorun çıkan eklentiler genellikle güncellenerek ya da alternatifiyle değiştirilerek çözülür.
4. Güncellemenin gerçekten devreye girdiğini doğrulayın
PHP güncellendikten sonra çalışan PHP süreçlerinin yeniden başlatılması gerekir. Site Sağlığı ekranında sürümün değiştiğini görün. Sunucunuzu kendiniz yönetiyorsanız PHP-FPM ya da web sunucusu servisini yeniden başlatın.
5. Hemen güncelleyemiyorsanız geçici önlemler alın
Bu önlemler riski azaltır ama tam çözüm değildir. Tek tam çözüm güncellemedir.
- Cloudflare kullanıyorsanız: Cloudflare, bilinen saldırı yöntemleri için WAF kurallarını ücretsiz plan dahil tüm müşterilerine açtı.
- Oturum yükleme ilerlemesini kapatın:
session.upload_progress.enabled = 0ayarını php.ini, FPM havuzu veya sunucu yapılandırması üzerinden uygulayın. PHP’nin uyarısına göre bu ayarini_set()ya da.user.iniile yapılırsa işe yaramaz. Ardından PHP süreçlerini yeniden başlatın. - İstek boyutlarını sınırlayın:
post_max_sizedeğerini ihtiyacınıza göre düşürün (dosya yüklemeniz yoksa 8M, varsa 32M gibi) veupload_max_filesizedeğerini bunun altında tutun. - Bu ayarları paylaşımlı hostingde kendiniz yapamıyorsanız hosting firmanızdan isteyin.
6. Şifrelerinizi ve anahtarlarınızı yenileyin
Açıklardan biri sunucu belleğindeki verilerin sızdırılmasına izin verdiği için, güncellemeden sonra hassas bilgileri yenilemek akıllıca olur:
- WordPress yönetici şifreleri
- Veritabanı şifresi (wp-config.php ile birlikte)
- wp-config.php içindeki güvenlik anahtarları (salt’lar). Yenilediğinizde tüm kullanıcıların oturumu kapanır, bu normaldir.
- Ödeme altyapısı, SMTP, kargo entegrasyonu gibi servislerin API anahtarları
7. Saldırı izi olup olmadığını kontrol edin
Araştırmacıların paylaştığı olası belirtiler şunlar:
- Sunucu kayıtlarında, olağandışı çok parçalı (multipart) isteklerin ardından gelen bellek sınırı hataları
- Tekrar tekrar ortaya çıkan HTTP 500 hataları
- Anormal derecede büyük veya bozuk
PHPSESSIDçerezleri - Açıklanamayan PHP işçisi yeniden başlamaları
WordPress tarafında da tanımadığınız yönetici kullanıcılar, wp-content klasöründe kaynağını bilmediğiniz yeni PHP dosyaları, beklenmedik yönlendirmeler veya sitenizde sizin eklemediğiniz sayfalar olup olmadığına bakın. Şüpheli bir durum görürseniz siteyi bir güvenlik uzmanına ya da hosting firmanızın güvenlik ekibine inceletin.
İşin SEO tarafı: Hacklenen site Google’da ne yaşar?
Bir güvenlik açığı sadece teknik bir sorun değildir. Ele geçirilen siteler çoğu zaman SEO açısından da ağır bedel öder:
- Spam içerik enjeksiyonu: Saldırganlar sitenize binlerce spam sayfa ekleyebilir. Bu sayfalar indekslenir ve sitenizin otoritesi ile güvenilirliği zarar görür.
- Gizli yönlendirmeler: Ziyaretçileriniz, özellikle Google’dan gelenler, kötü amaçlı sitelere yönlendirilebilir.
- Arama sonuçlarında uyarı: Google sitenizi tehlikeli olarak işaretlerse arama sonuçlarında “Bu site saldırıya uğramış olabilir” uyarısı çıkabilir ve tarayıcılar ziyaretçileri uyarabilir. Tıklama oranı ciddi biçimde düşer.
- Sıralama kaybı: Temizlik ve Google’ın yeniden değerlendirmesi zaman alır. Bu süreçte organik trafik kaybı yaşanabilir.
Bu yüzden Google Search Console’da Güvenlik ve Manuel İşlemler > Güvenlik sorunları raporunu düzenli kontrol edin. Bir sorun bildirilirse siteyi temizledikten sonra aynı ekrandan inceleme talebi gönderebilirsiniz. Search Console’un e-posta bildirimlerinin açık olduğundan da emin olun.
Sonuç
PHP2Shell, son yılların en geniş etkili PHP açıklarından biri. İyi haber şu ki çözümü net: PHP’yi yamalı bir sürüme güncellemek. Siteniz eski bir PHP sürümündeyse bu, ertelediğiniz PHP 8.x geçişini yapmak için de iyi bir fırsat. Daha yeni PHP sürümleri güvenliğin yanında genellikle daha iyi performans da sağlıyor ve hız, SEO’nun önemli sinyallerinden biri.
Sitenizin hangi sürümde olduğundan emin değilseniz ya da geçiş sırasında desteğe ihtiyacınız varsa benimle iletişime geçebilirsiniz.
Kaynaklar
- Qualys: PHP2Shell, PHP Patches Two Critical RCE Vulnerabilities
- Wiz Research: PHP2Shell
- Help Net Security: PHP2Shell vulnerabilities patched
- CISA: Critical Vulnerabilities in PHP Require Immediate Patching
- SiteGround: Critical PHP vulnerabilities
