PHP2Shell: 14 Yıllık RCE Zafiyetleri ve Yapay Zekâ Destekli Keşif
Yıllar önce tespit edilip rafa kaldırılan PHP hataları, sınır yapay zekâ modelleriyle bir haftada çalışan exploite dönüştü — yama yayınlanmadan günler önce ilk istismar girişimi kaydedildi
1. Zafiyetin kendisi: PHP2Shell nedir? 21 Ekim 2026'da yamaları yayımlanan iki kritik uzaktan kod çalıştırma (RCE) zafiyetidir. Sorun PHP'nin bellek tükenme (OOM) hatalarını ve istek sonrası temizliği işleme biçiminde yatıyor: bir istek beklenmedik şekilde kesildiğinde PHP, iç durumunda bozuk veya kullanım dışı kalmış bellek alanları bırakıyor; sonraki istek aynı işçiyi (worker) kullanırsa bu bayat durum okunup yozlaşmaya yol açıyor. Saldırı, istek başlatılırken bozulan durumun kapanış aşamasında 2. Ne kadar süredir var? Savunmasız kod, 2012'de yayımlanan PHP 5.4.0'a kadar uzanıyor; yani PHP 5.4'ten 8.5.11'e kadar tüm sürümler etkileniyor. Bu, zafiyetin kod tabanında yaklaşık 14 yıldır mevcut olduğu anlamına geliyor. 3. Neden yıllarca yamalanmadı? Hikâyenin bu kısmı ders niteliğinde. Bellek güvenliği endişeleri PHP için on yıllar öncesine uzanıyor; 2020'de ilk OOM zafiyeti tespit edildiğinde çalışan bir istismar gösterilemediği için kayıtlarda kaldı. 2024'te bir PHP çekirdek geliştiricisi hatalardan birinin arkasındaki bellek hatasını yeniden tespit etti, ancak ekip hatayı nasıl düzelteceği konusunda uzlaşamadı ve somut bir exploit keşfedilmediği için sorun önceliklendirilmedi — hiç yamalanmadı. "İstismarı çok karmaşık, öncelik vermeyelim" yaklaşımı, o dönem için makul görünüyordu. 4. Değiştiren şey: sınır yapay zekâ modelleri Zafiyeti çalışan koda dönüştürmek olağanüstü uzun bir zincir gerektiriyordu: bellek sızıntısı primitifi, adres belirsizliğini giderme, tahrip edilmiş diziyi sahte yapıya çevirme, yıkıcı geri çağrının Ölçek de çarpıcı: Ryan Austin (Calif), OpenAI'ın "Patch the Planet" programı kapsamında PHP kaynak kodunu GPT-5.6 Sol ile denetlerken açıkları buldu; Wiz ekibi ise Gemini 4 Argon, GPT-5.6 Sol ve kendi araçları Atlas ile bağımsız olarak aynı açıkları keşfetti. Tek bir araştırmacı, AI desteğiyle bir haftada, daha önce dünya çapında bir ekibin aylarca çalışacağı işi tamamladı. 5. Yama öncesi sızan ifşa: kim, ne zaman, neden? Açıklar Ağustos 2026'da keşfedilip PHP ekibine bildirildi ve koordineli ifşa 22 Ekim'e planlandı. Ancak 20 Ekim'de Hacker News'te bilgi sızdı; PHP ekibi yamayı bir gün öne çekerek 21 Ekim 14:00 UTC'de yayımladı. Erken açıklamayı yapan taraf, bilgiyi kamuoyuna sızdıran Hacker News paylaşımıydı — motivasyonu net değil, ancak sonucu açık: yama yayınlanmadan önce istismar penceresi doğdu. 6. İlk istismar girişimi yamadan önce Amazon Threat Intelligence honeypot ağında 17 Ekim'de, yani ifşadan 4 gün önce bir saldırı girişimi kaydedildi; bilginin saldırganlara nasıl sızdığı hâlâ bilinmiyor. Cloudflare ise 21 Ekim 07:43 UTC'de erken saldırı trafiği raporladı — yama yayımlanmadan saatler önce. İstismar yama öncesinde fiilen başlamıştı. 7. Kimler etkileniyor? Yama yalnızca CGI mekanizmasıyla çalışan kurulumlar içindi: 8. Büyük resim: raflardaki eski hatalar artık güvenli değil Bu vaka bir eşiği işaret ediyor: "istismarı çok zor" diye rafa kalkan binlerce eski hata, AI destekli istismar geliştirmeyle ani olarak saldırılabilir hale gelebilir. PHP Foundation da bunu kabul ediyor; 1 Temmuz'dan bu yana AI yardımıyla 15 yeni CVE yayımlandı. Kurumlar için pratik sonuç: envanterinde eski PHP çalıştıran her sistem, artık "zafiyeti zor" gerekçesiyle ertelenemeyecek bir risk taşıyor.system(komut) çağrısına dönüştürülmesiyle tamamlanıyor.system() fonksiyonunun adresine yönlendirilmesi. Wiz araştırmacılarının ifadesiyle kusurlar on yıllardır oradaydı ama istismar edilebilirliğini kanıtlamak insan araştırmacıların pratik olarak ulaşabileceği sınırın ötesindeydi; frontier AI modelleri bu engeli ortadan kaldırdı.mod_php veya PHP-FPM kullananlar doğrudan etkilenmiyor, ancak CGI'ya düşen istekler (bazı reverse proxy ve özel yapılandırmalarda) etkilenebiliyor. Bu da saldırı vektörünün web sunucusundan bağımsız, PHP çekirdeğinde olduğunu gösteriyor: Apache mi Nginx mi fark etmiyor, tek çare PHP sürümünü güncellemek. Düzeltmeler PHP 8.5.12, 8.4.27, 8.3.36 ve 8.2.35; PHP 8.1 ve öncesi için resmî yama yok.