PHP2Shell PHP Güvenlik Güncellemesi Yayınlandı: PHP Nasıl Güncellenir?

PHP ekibi, web sunucularını ve PHP tabanlı uygulamaları etkileyen iki kritik güvenlik açığı için acil güvenlik güncellemelerini yayımladı. PHP2Shell olarak anılan bu açıklar, savunmasız sistemlerde kimlik doğrulaması gerektirmeden uzaktan kod çalıştırılmasına neden olabiliyor. Bu durum, özellikle internete açık web siteleri ve sunucular için ciddi bir güvenlik riski oluşturuyor.

Güvenlik açıklarının ardından yayımlanan yamalarla birlikte sunucu yöneticilerinin ve web geliştiricilerin kullandıkları PHP sürümlerini kontrol etmeleri ve gerekli güncellemeleri vakit kaybetmeden uygulamaları öneriliyor.

Peki PHP2Shell nedir, hangi PHP sürümleri etkileniyor ve PHP güncellemesi nasıl yapılır? İşte bilinmesi gerekenler.

PHP2Shell Güvenlik Açığı Nedir?

PHP2Shell, PHP çalışma ortamında tespit edilen iki kritik güvenlik açığını ifade etmek için kullanılan isimdir. Açıklar, CVE-2026-109618 ve CVE-2026-109619 kimlikleriyle takip ediliyor.

Her iki güvenlik açığı da belirli bellek yönetimi ve istek işleme koşullarındaki hatalardan kaynaklanıyor. Saldırganlar, savunmasız sistemlerde bu hatalardan yararlanarak PHP sürecinin yetkileriyle zararlı kod çalıştırabilir.

Bu durum saldırganların aşağıdaki işlemleri gerçekleştirmesine zemin hazırlayabilir:

  • Sunucuda yetkisiz komutlar çalıştırmak.
  • Web sitesi dosyalarına erişmek veya dosyaları değiştirmek.
  • Uygulamanın erişebildiği hassas bilgilere ulaşmak.
  • Sunucu üzerinde kalıcılık sağlamaya çalışmak.
  • Web sitesinin kullanılabilirliğini ve bütünlüğünü tehlikeye atmak.

Açıkların kritik kabul edilmesinin temel nedeni, başarılı bir saldırı için her durumda kullanıcı hesabı veya uygulama üzerinde oturum açılmasının gerekmemesidir.

Önemli: Bir web sitesinin WordPress, Joomla veya Drupal gibi bir içerik yönetim sistemi kullanması, PHP2Shell riskinden muaf olduğu anlamına gelmez. Bu sistemlerin çalıştığı PHP ortamının da güncel ve güvenli olması gerekir.

PHP2Shell Hangi PHP Sürümlerini Etkiliyor?

PHP güvenlik duyurularına göre 8.2, 8.3, 8.4 ve 8.5 sürüm dallarında etkilenen sürümler için güvenlik yamaları yayımlandı.

Aşağıdaki tabloda yayımlanan düzeltmeleri içeren sürümler yer alıyor:

PHP sürümüGüvenli sürüm
PHP 8.5.x8.5.12 ve üzeri
PHP 8.4.x8.4.27 ve üzeri
PHP 8.3.x8.3.36 ve üzeri
PHP 8.2.x8.2.35 ve üzeri

Bu sürümlerin öncesinde kalan sürümler için uygun güvenlik düzeltmesinin uygulanması gerekiyor.

PHP 8.1 ve daha eski sürümler ise resmî PHP projesi tarafından genel olarak desteklenmiyor. Bazı Linux dağıtımları ve ticari destek sağlayıcıları bu sürümlere geriye taşınmış güvenlik yamaları sunabilir. Bu nedenle yalnızca sürüm numarasına bakmak yerine kullanılan paketin ilgili güvenlik açıklarını gerçekten giderdiği doğrulanmalıdır.

PHP 8.2 için de ek bir planlama yapılması gerekiyor: Bu sürüm dalının resmî destek süresi 31 Aralık 2026 tarihinde sona eriyor. Bu nedenle geçici olarak yamalı 8.2 sürümüne geçmek, daha güncel ve desteklenen bir PHP sürümüne geçiş planının yerini tutmamalıdır.

Güncel bilgiler için PHP’nin resmî duyurusu incelenebilir:

https://www.php.net/archive/2026.php

PHP Sürümü Nasıl Kontrol Edilir?

Güncelleme yapmadan önce sunucuda hangi PHP sürümünün çalıştığını belirlemek gerekir.

1. SSH üzerinden PHP sürümünü kontrol etme

Linux sunucunuza SSH ile bağlandıktan sonra aşağıdaki komutu çalıştırabilirsiniz:

php -v

Komut, komut satırında kullanılan PHP sürümünü ve derleme bilgilerini gösterir.

Örneğin çıktı PHP 8.3.35 gösteriyorsa, bu sürüm PHP2Shell için yayımlanan 8.3.36 düzeltmesinden önceki sürümdür.

Ancak önemli bir ayrıntı bulunuyor: Komut satırında çalışan PHP ile web sitenizin kullandığı PHP sürümü farklı olabilir. Bu nedenle PHP-FPM, Apache veya hosting paneli üzerinden çalışan sürümü de kontrol etmek gerekir.

2. Hosting panelinden PHP sürümünü kontrol etme

cPanel veya benzeri bir hosting paneli kullanıyorsanız PHP sürümünü genellikle aşağıdaki menülerden kontrol edebilirsiniz:

  1. Hosting kontrol paneline giriş yapın.
  2. MultiPHP Manager, Select PHP Version veya benzer isimli bölümü açın.
  3. Web sitenizin bağlı olduğu alan adını bulun.
  4. Seçili PHP sürümünü kontrol edin.
  5. Sunucunuzun desteklediği güvenli bir sürümün seçili olup olmadığını doğrulayın.

Panelde görünen sürümün gerçekten web sitenize uygulandığından emin olun. Bazı hosting sağlayıcılarında farklı alan adları farklı PHP sürümleriyle çalışabilir.

PHP Güncellemesi Nasıl Yapılır?

PHP güncelleme yöntemi, sunucunun işletim sistemine, hosting sağlayıcısına ve PHP’nin nasıl kurulduğuna göre değişir.

Güncellemeden önce web sitesi dosyalarının ve veritabanının yedeğini alın. Ayrıca uygulamanızın hedef PHP sürümüyle uyumlu olduğundan emin olun.

Yöntem 1: Ubuntu veya Debian sunucularda PHP güncelleme

PHP paketleri işletim sisteminin resmî depolarından kuruluyorsa öncelikle paket listesini güncelleyin:

sudo apt update

Ardından sisteminizin sunduğu PHP güvenlik güncellemelerini yükleyin:

sudo apt upgrade

Bu komutlar, depolarda sunulan uygun güncellemeleri yükler. Ancak her sistemde PHP’nin gerekli yamalı sürüme yükseltileceğini garanti etmez. Dağıtımın paket sürümünü ve güvenlik duyurusunu kontrol edin.

Kurulu PHP paketlerini incelemek için:

dpkg -l | grep php

PHP-FPM kullanıyorsanız, kullandığınız sürümün hizmetini yeniden başlatmanız gerekebilir. Örneğin PHP 8.3 için:

sudo systemctl restart php8.3-fpm

Apache ile mod_php kullanıyorsanız, kurulum yapınıza uygun biçimde Apache hizmetini yeniden başlatmanız gerekebilir:

sudo systemctl restart apache2

Dikkat: Yukarıdaki hizmet adları örnektir. Sunucunuzdaki PHP sürümüne ve yapılandırmaya uygun hizmeti kullanın. Farklı PHP sürümlerini, depoları veya üçüncü taraf paket kaynaklarını rastgele karıştırmayın. Güncelleme sonrasında web sitesinin doğru PHP paketini kullandığını doğrulayın.

Yöntem 2: cPanel üzerinden PHP güncelleme

cPanel kullanan bir web sitesinde aşağıdaki adımları izleyebilirsiniz:

  1. cPanel hesabınıza giriş yapın.
  2. MultiPHP Manager veya hosting sağlayıcınızın sunduğu PHP sürüm yönetimi bölümünü açın.
  3. Güncellemek istediğiniz alan adını seçin.
  4. Sağlayıcının sunduğu güvenli ve uygulamanızla uyumlu PHP sürümünü seçin.
  5. Değişikliği uygulayın.
  6. Web sitenizi ve önemli işlevlerini test edin.

PHP sürümü değiştirme yetkiniz yoksa hosting firmanızdan güncelleme talep edin. Paylaşımlı hosting ortamlarında PHP paketlerini doğrudan kullanıcıların değil, sağlayıcının yönetmesi yaygındır.

Yöntem 3: Plesk üzerinden PHP güncelleme

Plesk panelinde PHP sürümünü değiştirmek için genellikle şu adımlar izlenir:

  1. Plesk paneline giriş yapın.
  2. Websites & Domains bölümünü açın.
  3. İlgili alan adının PHP ayarlarına girin.
  4. Sağlayıcının sunduğu yamalı PHP sürümünü seçin.
  5. Ayarları kaydedin ve değişikliğin etkinleştiğini doğrulayın.

Panelde gerekli sürüm bulunmuyorsa sunucu yöneticinizin veya hosting sağlayıcınızın PHP paketlerini güncellemesi gerekebilir.

Yöntem 4: PHP’yi manuel olarak derleyen sunucular

PHP kaynak kodundan derlenmişse veya özel bir paket deposu kullanılıyorsa standart paket güncelleme komutları yeterli olmayabilir.

Bu durumda sunucunun kurulum yöntemine uygun, güvenlik düzeltmelerini içeren bir PHP derlemesi hazırlanmalı ve mevcut çalışma ortamına kontrollü biçimde uygulanmalıdır.

Canlı sistemlerde PHP ikili dosyalarını gelişigüzel değiştirmek yerine bakım planı, yedekleme, test ve geri dönüş prosedürü uygulanmalıdır.

PHP Güncellemesinden Sonra Neler Kontrol Edilmeli?

Güncellemenin tamamlanması, işlemin bittiği anlamına gelmez. Yeni PHP paketinin gerçekten web isteklerini işleyen süreçler tarafından kullanıldığından emin olunmalıdır.

Aşağıdaki kontrolleri yapmanız önerilir:

  • PHP sürümünü yeniden kontrol edin.
  • PHP-FPM, Apache veya ilgili çalışma hizmetlerini uygun şekilde yeniden başlatın.
  • Web sitesinin ana sayfasını ve yönetim panelini test edin.
  • Formları, dosya yüklemelerini, API uç noktalarını ve veritabanı bağlantılarını kontrol edin.
  • PHP ve web sunucusu hata kayıtlarını inceleyin.
  • Kullanılan PHP eklentilerinin ve uygulama bağımlılıklarının uyumluluğunu doğrulayın.

Komut satırındaki php -v çıktısının güncel olması tek başına yeterli değildir. Web sunucusunun kullandığı PHP çalışma ortamı da düzeltilmiş sürümde olmalıdır.

PHP2Shell Açığına Karşı Geçici Önlemler

PHP güncellemesi hemen yapılamıyorsa sistemin riskini azaltmak için geçici önlemler değerlendirilebilir. Bununla birlikte bu önlemler, güvenlik yamasının yerini tutmaz.

  • Güncelleme yapılamayan internete açık sunucuların erişimini geçici olarak kısıtlayın veya gerekli durumlarda hizmeti çevrim dışına alın.
  • Gereksiz dosya yükleme ve istek işleme özelliklerini gözden geçirin.
  • Web uygulaması güvenlik duvarı (WAF) ve ters proxy kurallarını ek bir savunma katmanı olarak değerlendirin.
  • PHP ve web sunucusu günlüklerini olağan dışı istekler, hatalar ve beklenmeyen süreçler açısından izleyin.
  • Güvenlik duyurusunda belirtilen geçici yapılandırma önlemlerini yalnızca sisteminiz için uygun olduklarını doğruladıktan sonra uygulayın.

Örneğin session.upload_progress.enabled=0 ayarı, bu özelliğe ihtiyaç duyulmayan sistemlerde risk azaltıcı bir önlem olarak değerlendirilebilir. Ancak tek başına tüm PHP2Shell saldırı yollarını kapatmaz.

Ayrıca display_errors=Off gibi hata mesajlarını gizleyen ayarlar, bu güvenlik açıklarını gidermez.

PHP2Shell Saldırısına Maruz Kalındığı Nasıl Anlaşılır?

PHP2Shell açığından etkilenmiş olabilecek bir sunucuda yalnızca PHP sürümünü güncellemek, daha önce gerçekleşmiş bir saldırının izlerini ortadan kaldırmaz.

Bu nedenle özellikle yama uygulanmadan internete açık kalmış sunucularda güvenlik incelemesi yapılması önerilir.

İncelenebilecek belirtiler şunlardır:

  • Web kök dizininde kaynağı bilinmeyen PHP dosyaları.
  • Beklenmeyen dosya değişiklikleri veya yeni yönetici hesapları.
  • PHP süreçlerinden başlatılan olağan dışı komutlar ya da alt süreçler.
  • Açıklanamayan PHP-FPM çökmeleri ve bellek hataları.
  • Tanınmayan zamanlanmış görevler, SSH anahtarları veya dış bağlantılar.
  • Erişim kayıtlarında olağan dışı istekler ve şüpheli dosya yükleme girişimleri.

Bu belirtilerin hiçbiri tek başına saldırının kesin kanıtı değildir. Benzer şekilde, herhangi bir belirti görülmemesi de sunucunun kesinlikle ele geçirilmediğini göstermez.

Şüpheli bir durum tespit edilirse sistemin ağ erişimini kontrollü biçimde kısıtlamak, günlükleri korumak ve olay müdahalesi yürütmek önemlidir. Sunucunun güvenilir bir yedekten yeniden kurulması veya kimlik bilgilerinin yenilenmesi gibi adımlar, incelemenin bulgularına göre planlanmalıdır.

WordPress ve Diğer PHP Tabanlı Siteler İçin Önemli Uyarı

WordPress, WooCommerce, Joomla ve Drupal gibi sistemleri kullanan web sitesi sahiplerinin PHP güncellemesini uygulama güncellemelerinden ayrı değerlendirmesi gerekir.

WordPress çekirdeğini, eklentileri veya temaları güncellemek PHP motorundaki bir güvenlik açığını kendiliğinden gidermez.

Bu nedenle aşağıdaki adımlar birlikte ele alınmalıdır:

  1. Sunucuda kullanılan PHP sürümünü belirleyin.
  2. PHP sağlayıcısının yayımladığı güvenlik düzeltmesini uygulayın.
  3. Web sunucusunun veya PHP-FPM’in yamalı sürümü kullandığını doğrulayın.
  4. CMS çekirdeğini, eklentileri ve temaları da güncel tutun.
  5. Yönetici hesaplarını, dosya değişikliklerini ve güvenlik kayıtlarını inceleyin.

Bu yaklaşım, hem PHP2Shell riskini azaltmaya hem de diğer yaygın web güvenliği sorunlarına karşı korumayı güçlendirmeye yardımcı olur.

Sık Sorulan Sorular

PHP2Shell nedir?

PHP2Shell, PHP’de tespit edilen ve belirli koşullarda saldırganların kimlik doğrulaması olmadan uzaktan kod çalıştırmasına olanak tanıyabilen iki kritik güvenlik açığı için kullanılan isimdir.

PHP2Shell hangi CVE numaralarıyla takip ediliyor?

Güvenlik açıkları CVE-2026-109618 ve CVE-2026-109619 numaralarıyla takip edilmektedir.

PHP’yi güncellemek zorunlu mu?

İlgili açıkların etkilediği bir PHP sürümü kullanılıyorsa güvenlik düzeltmesinin uygulanması önemlidir. Özellikle internete açık sunucular mümkün olan en kısa sürede yamalanmalıdır.

PHP güncellemesi web sitemi bozar mı?

Sürüm değişikliği, eski uygulamalar veya uyumsuz eklentiler nedeniyle sorunlara yol açabilir. Bu nedenle yedekleme yapılmalı, mümkünse önce test ortamında denenmeli ve sonrasında uygulama işlevleri kontrol edilmelidir.

Hosting firmam PHP güncellemesi yapmıyorsa ne yapmalıyım?

Hosting sağlayıcınızdan PHP2Shell için güvenlik düzeltmelerinin uygulanmasını ve kullanılan PHP çalışma ortamının doğrulanmasını talep edin. Sağlayıcı güncellemeyi yapamıyorsa desteklenen ve yamalı bir ortama geçişi değerlendirin.

PHP sürümünü güncellemek saldırıya uğramış sunucuyu temizler mi?

Hayır. Güncelleme güvenlik açıklarını gidermeyi amaçlar ancak daha önce sunucuya yerleştirilmiş zararlı dosyaları, hesapları veya kalıcılık mekanizmalarını otomatik olarak kaldırmaz. Şüpheli sistemlerde ayrıca güvenlik incelemesi yapılmalıdır.

Sonuç: PHP Güvenlik Güncellemesini Ertelemeyin

PHP2Shell güvenlik açıkları, PHP tabanlı web sitelerinin ve sunucuların güncel tutulmasının ne kadar önemli olduğunu bir kez daha gösteriyor. Uygun güvenlik yamalarının uygulanması, çalışma hizmetlerinin yeniden başlatılması ve güncellemenin doğrulanması temel öncelikler arasında yer alıyor.

Web sitesi sahipleri, geliştiriciler ve sistem yöneticileri kullandıkları PHP sürümlerini kontrol etmeli, desteklenen ve düzeltilmiş sürümlere geçmeli ve şüpheli etkinliklere karşı kayıtlarını incelemelidir.

Unutmayın: Güncel bir PHP sürümü kullanmak tek başına tüm web güvenliği sorunlarını çözmez; ancak bilinen kritik açıkların giderilmesi için atılması gereken en önemli adımlardan biridir.