~/ / Yapay zeka makaleleri / Yapay zeka PHP2Shell'in bulunmasına yardımcı oldu: Ekim 2026'nın kritik PHP güvenlik açıkları
Yapay zeka PHP2Shell'in bulunmasına yardımcı oldu: Ekim 2026'nın kritik PHP güvenlik açıkları
Basın haberlerine göre yapay zeka modelleri, araştırmacıların PHP'nin kendisinde CVE-2026-109618 ve CVE-2026-109619 numaralı iki kritik güvenlik açığını bulmasına yardımcı oldu; bu açıklar kimlik doğrulaması olmadan uzaktan kod yürütmeye (RCE) izin verebilir. PHP, düzeltilmiş sürümleri 21 Ekim 2026'da yayımladı. Bu makale, resmî duyuruların ve haberlerin açıklar ve yapay zekanın nasıl rol aldığı hakkında ne söylediğini özetler ve çalıştırdığınız PHP'de düzeltmenin bulunup bulunmadığını denetlemenizi sağlar.
2026-10-24 tarihinde resmî duyurularla karşılaştırılarak denetlendi. Bu sayfa resmî bir güvenlik bildirimi değildir ve ayrıntılar değişebilir; bu yüzden en alttaki kaynakları takip edin.
Önce ne yapmalı
- PHP'yi düzeltilmiş bir sürüme (8.5.12, 8.4.27, 8.3.36 veya 8.2.35) ya da Linux dağıtımınızın düzeltilmiş paketine güncelleyin. PHP, tam bir hafifletme yöntemi olmadığını ve güncellemenin tek güvenli seçenek olduğunu söylüyor.
- Güncellemeden sonra PHP-FPM'i, Apache'yi ve uzun süre çalışan tüm PHP işçilerini yeniden başlatın ki düzeltilmiş kodu yüklesinler. Güncellemeden önce başlamış bir servis hâlâ eski kodu çalıştırıyor demektir.
- PHP bir dağıtım paketinden geldiyse, ilk tireden sonraki kısım dahil paketin tam sürümünü kontrol edin. Dağıtımlar, numaranın ilk kısmını değiştirmeden düzeltmeyi pakete ekleyebilir.
- Hemen güncelleyemiyorsanız aşağıdaki hafifletme önlemlerine bakın. PHP, bunların belirli saldırı yollarına maruziyeti azalttığını ancak bir kurulumu güvenli hâle getirmediğini söylüyor.
Ne oldu
21 Ekim 2026'da PHP, 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 sürümlerini yayımladı. Bu sürümler, ikisi de CVSS v4.0 9.2 olarak derecelendirilen iki kritik güvenlik açığını düzeltiyor.
RCE via OOM corruption olarak adlandırılan CVE-2026-109618: bellek yetersizliği (out-of-memory) işleme, PHP'yi dahili istek verileri yalnızca kısmen başlatılmışken kesebilir ve istek temizliği geçersiz verileri geçerliymiş gibi ele alabilir.
RCE via stale global state olarak adlandırılan CVE-2026-109619: isteğe ait dahili durum, onu destekleyen bellek serbest bırakıldıktan sonra da varlığını sürdürebilir ve aynı işçi tarafından işlenen sonraki bir istek bu eski durumu kullanabilir.
- CVE-2026-109618 · CVSS 4.0 9.2
- CVE-2026-109619 · CVSS 4.0 9.2
Yapay zeka nasıl rol oynadı
The Next Web'e göre güvenlik firması Calif, ilk hatayı Ağustos'ta, OpenAI'ın finanse ettiği PHP kaynak kodu denetimi sırasında bir OpenAI modelinin yardımıyla buldu. Wiz ise açıkları haftalar sonra bağımsız olarak, Google'ın Gemini modelleri dahil yapay zeka araçlarıyla bulduğunu söyledi.
php2shell.com sitesi, araştırmayı Wiz Research, OpenAI Codex Security ve Calif'e atfediyor. Calif, genel kullanıma açık modeller kullandığını ve PHP'nin geçmişini bilmenin modelden daha önemli olduğunu söyledi.
Aynı makale, Cloudflare'in WAF kurallarını müşterileri için ifşadan yaklaşık dokuz saat önce etkinleştirdiğini ve ardından bir kavram kanıtı (proof-of-concept) istismarın çevrimiçi dolaşıma girdiğini bildiriyor. php2shell.com sitesi, bir WAF veya CDN kuralının PHP'yi güncellemenin yerine geçen bir şey olarak görülmemesi gerektiğini söylüyor.
Zaman çizelgesi
- PHP, 21 Ekim'de 14:00 UTC için planlanan yaklaşan bir kritik güvenlik sürümünü duyurdu.
- PHP 8.5.12, 8.4.27, 8.3.36 ve 8.2.35 bir güvenlik bildirimiyle birlikte yayımlandı ve Ubuntu USN-8948-1'i yayımladı.
- PHP, CVE-2026-115560 olarak izlenen, ek ve olası olmayan bir vektör için session.upload_progress.enabled hakkında bilgilendirici bir bildirim yayımladı.
Kimler etkileniyor
PHP, web isteklerine hizmet veren tüm PHP kurulumlarının risk altında olduğunu söylüyor; buna PHP-FPM, mod_php'li Apache, php-cgi, FrankenPHP ve LiteSpeed da dahil. Kimlik doğrulaması yapılmamış bir isteğin, uygulama kodu çalışmadan önce saldırıyı tetikleyebildiği mod_php için riski en yüksek olarak değerlendiriyor.
GitHub bildirimleri 8.2.35, 8.3.36, 8.4.27 ve 8.5.12 altındaki sürümleri etkilenmiş olarak listeliyor. Wiz tarafından işletildiği belirtilen php2shell.com sitesi, etkilenen sürümlerin PHP 5.4'e kadar gittiğini söylüyor.
PHP 8.1 ve öncesi artık PHP projesinden güncelleme almıyor. Bazı dağıtımlar ve LTS sağlayıcıları geriye taşınmış düzeltmeler sunuyor; PHP ise kaynaktan derleyenler için PHP 7.4, 8.0 ve 8.1 sürümlerine asgari kaynak geri taşımaları sağladı.
Düzeltilmiş sürümler
Kendi dalının düzeltilmiş sürümüne eşit ya da ondan yeni bir sürümde düzeltme vardır. Bir dağıtım paketinin düzeltilmiş olup olmadığı paket sürümüne bağlıdır; bu yüzden Ubuntu ve Debian için ikinci tabloyu kullanın.
PHP'nin kendi sürümleri
| Dal | Düzeltilen ilk sürüm |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
Ubuntu ve Debian paketleri
| Dağıtım | Paket | Düzeltilmiş paket sürümü | Bildirim |
|---|---|---|---|
| Ubuntu 26.10 | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| 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 |
Tablolar yalnızca resmî bildirimlerin listelediklerini gösterir. Diğer dağıtımlar için sağlayıcınızın güvenlik bildirimine bakın.
PHP'nizi denetleyin
PHP'nizin nereden geldiğini seçin, sürüm metnini yapıştırın; araç bunu yukarıdaki düzeltilmiş sürümlerle karşılaştırır. Yalnızca yapıştırdığınız metni değerlendirir. Hangi sürümün çalıştığını göremez; bu yüzden güncellemeden sonra servisin yeniden başlatıldığını da ayrıca doğrulayın.
Sürümü gösteren komutlar
php -vdpkg -l 'php*' | grep ^iiapt-cache policy php8.3-fpm | grep Installed
Her şey tarayıcınızda çalışır. Yapıştırdığınız metin yüklenmez.
Hemen güncelleyemiyorsanız
PHP bu önlemleri listeliyor. Bunların belirli saldırı yollarına maruziyeti azalttığını ancak bir kurulumu güvenli hâle getirmediğini ve tam çözümün yalnızca güncelleme olduğunu söylüyor.
CVE-2026-109618
- memory_limit=-1 olarak ayarlayın; tercihen uygulamaların geçersiz kılamayacağı bir yolla, örneğin FPM havuzunda veya Apache yapılandırmasında php_admin_value ile. Altta yatan bir bellek ayırma hatası yine de savunmasız yola ulaşabilir.
- Düşük bir post_max_size ayarlayın: dosya yüklemeye ihtiyaç duymayan uygulamalar için 8M, yükleme gerekiyorsa 32M. upload_max_filesize değerini post_max_size değerinin altında tutun.
- Web sunucusunda veya proxy'de, çözülmüş istek boyutu, girdi alanı sayısı, çok parçalı (multipart) parça sayısı, üstbilgi sayısı ve iç içe geçme derinliği için sınırlar uygulayın.
- Kullanılabilirlik sınırı olarak bir konteyner veya cgroup sınırı kullanın. RLIMIT_AS veya RLIMIT_DATA kullanmayın, çünkü bunlar savunmasız bellek ayırma hatasına neden olabilir.
CVE-2026-109619
- session.upload_progress.enabled=0 değerini php.ini içinde, bir FPM havuzunda veya sunucu yapılandırmasında ayarlayın ve her işçiyi yeniden başlatın. ini_set() veya bir FPM .user.ini dosyasına güvenmeyin.
- PHP 8.5'te fatal_error_backtraces=0 olarak ayarlayın ve her işçiyi yeniden başlatın.
- Başlatmadan önce tanılama iletileri üreten, istek başına uygulanan geçersiz veya kullanımdan kaldırılmış ayarları kaldırın. Tanılama iletilerini gizlemek yardımcı olmaz.
- Bir saldırganın ulaşabildiği ölümcül hataları ve yürütme zaman aşımlarını giderin.
23 Ekim tarihli bilgilendirici bildirim
PHP, olası olmayan başka bir uzaktan kod yürütme vektörüne karşı tam koruma sağlamak için, bir sonraki düzenli hata düzeltme sürümüne kadar session.upload_progress.enabled=0 ayarlanmasını öneriyor. Bunu 21 Ekim tarihli bildirimden zaten uyguladıysanız yerinde bırakın.
PHP, sorunun yalnızca alışılmadık bir bileşimde ortaya çıkabileceğini söylüyor: bir uygulama yapılandırmasında session.serialize_handler değerini php_binary veya php_serialize olarak ayarlıyor, session_start() öncesinde çalışma zamanında ini_set() ile php olarak değiştiriyor ve oturum yükleme ilerlemesi (session upload progress) hâlâ etkin. PHP, bir sonraki sürümle birlikte CVE-2026-115560 için tam bir bildirim yayımlayacak.
Bu sayfa neleri yapmaz
- Resmî bir güvenlik bildirimi değildir ve istismar ayrıntıları vermez. Yetkili kaynak aşağıdaki resmî duyurular ve bildirimlerdir.
- Bir sisteme saldırı yapılıp yapılmadığını söyleyemez. php2shell.com sitesi, şüpheli etkinliğin görülmemesinin bir sistemin etkilenmediğini göstermediğini belirtiyor.
- Maruziyet; sürüme, yapılandırmaya ve ilgili güvenlik açığına bağlıdır. Hafifletme önlemleri bir uygulamanın çalışma biçimini etkileyebilir.
Kaynaklar
- PHP: 21 Ekim 2026 tarihli güvenlik bildirimi
- GitHub: GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Ubuntu: USN-8948-1
- Debian: CVE-2026-109618 için güvenlik izleyicisi
- PHP: 23 Ekim 2026 tarihli bilgilendirici bildirim
- php2shell.com
- The Next Web: PHP rushes out emergency patches