Yazılım ve Uygulamalar

PHP'deki kritik açık iki yıl önce de biliniyormuş

PHP Foundation'ın olay sonrası değerlendirmesine göre küçük bakımcı ekip açıktan iki yıl önce haberdardı. PHP2Shell zinciri ise sunucuları vuruyor.

· · 3 dk okuma
PHP resmi web sitesinin ana sayfası bir ekranda görünüyor; PHP 8.5 sürümü ve "What's new in 8.5" düğmesi öne çıkıyor.

Açık kaynaklı programlama dili PHP'de, 19 Ekim 2026 haftasında OpenAI'ın GPT 5.6-Sol modeli tarafından keşfedilen kritik güvenlik açıkları geniş bir tehlike yarattı. Yayımlanan olay sonrası değerlendirmeye göre, bakımcılardan oluşan küçük bir ekip sorunu iki yıl önce zaten biliyordu.

Güvenlik uzmanları onlarca yıldır biriken teknik borca karşı uyarıda bulunuyordu. Yapay zekâ ajanlarının zafiyet taramasını katlanarak hızlandırması ise alışılmış 90 günlük ifşa süresini anlamsız hale getirdi. İnternet sitelerinin yaklaşık yüzde 70'ini barındıran PHP de bu hata avcısı yapay zekâ ajanlarının hedefine girdi. Açık, saldırganın yeterli bilgiye sahip olması halinde uzaktan kod çalıştırmaya imkân veriyor.

Açığın teknik kökeni

Sorunun temelinde PHP motorunun hata yönetimindeki eski bir mimari karar yatıyor. Bir PHP süreci belleği tükettiğinde, yürütmeyi başka bir noktaya koşulsuz olarak atlatan longjmp() adlı C fonksiyonu çağrılıyor. Bu fonksiyonun güçlü bir gerekçe olmadan kullanılması genel olarak önerilmese de asıl problem bu değil. Atlama, bir dizi girdisi eklenirken ya da bir nesne başlatılırken gerçekleşirse, yarım kalmış veri bellekte kalıyor.

Motor temizlik ve çıkış mekanizmasına geçtiğinde ise bu kod tam ve tutarlı veriyle çalıştığını varsayıyor; oysa elinde tutarsız artık baytlar bulunuyor. Web isteğine doğru içeriği yerleştiren bir saldırgan bu mekanizmayı kullanarak PHP'nin yetkileriyle istediği kodu çalıştırabiliyor. Devam eden PHP2Shell saldırısı da bunu gösteriyor.

Uzaktan kabuk elde etmek için saldırganın kullanılan PHP'nin tam sürümünü ve derlemesini bilmesi gerekiyor, dolayısıyla işlem tek tuşla gerçekleşmiyor. Yine de çoğu aynı sürümü çalıştıran on milyonlarca savunmasız sunucunun bulunması, tehdidi ciddi kılıyor. Açık kamuya duyurulduktan sonra birçok sistem yöneticisi, olası saldırganlara kolaylık sağlamamak için PHP sürüm bilgisinin bildirilmesini kapattı.

Ekip sorunu biliyordu

PHP Foundation'ın olay sonrası değerlendirmesine göre ekip sorundan iki yıldır haberdardı, ancak bunu hemen bir endişe nedeni olarak görmedi. Üçüncü taraf eklentilerle uyumluluğu korurken sorunu çözmenin en iyi yolu konusunda defalarca gidip gelindi. Ekip yönetim hataları yaptığını kabul etti.

Öte yandan ekip küçük bir yapı: tek tam zamanlı çalışan ve 14 yarı zamanlı yüklenicisi var; buna rağmen internetteki en yaygın yazılımlardan birinin bakımını üstleniyor. Modern bilişim için kritik önemde olup yeterince personele ya da finansmana sahip olmayan açık kaynak projeleri sık görülen bir örüntü.

Eski sürümler ve yama seçenekleri

Asıl sorun açığın kendisinden çok genel bir ihmal olarak öne çıkıyor. Açığın duyurulduğu sırada internetteki PHP kurulumlarının yüzde 73'ü, aktif desteği olmayan ömrünü doldurmuş sürümleri çalıştırıyordu. Şu anda bakımı süren dallar 8.1'den güncel 8.5'e kadar uzanıyor. Standart yama süreci nispeten kolay: bir nokta güncellemesi ve bazı hizmetlerin yeniden başlatılması yeterli olabiliyor. Sistem yöneticileri PHP'yi nadiren doğrudan kuruyor; çoğunlukla tercih ettikleri Linux dağıtımının ya da topluluk depolarının güncel paketlerine güveniyor.

PHP Foundation, 7.4'ten 8.1'e kadar olan sürümler için kaynak kodu yamalarını yayımladı; bu sayede daha eski sürümler için de yama geliştirmek mümkün. Birçok kuruluş bunu yaptı. Debian geliştiricisi Ondřej Surý'nin Debian ve Ubuntu türevleri için sunduğu paketler PHP 5.6'dan 8.1'e uzanıyor. CloudLinux ve AlmaLinux de geri taşınmış düzeltmeler üretti. Ubuntu Pro ve Zend gibi ticari sağlayıcılar ise PHP 5.5'e kadar inen sürümler için paket yayımladı.

PHP 7 kullanan siteler ise zor durumda. PHP 7.4'ten 8.0'a 2020 sonlarında geçilirken dilde çoğu küçük ama gözden geçirme gerektiren değişiklikler yapılmıştı. Birçok kişi, dağıtımının özellikle destek süresi içindeki LTS sürümleri için düzeltmeleri geri taşımaya devam etmesini bekliyordu. Ancak 7.3 ve daha eski sürümleri kullananlar, tüm dağıtımların düzeltmeyi geri taşıyacağı garanti olmadığından, sitelerinin kodunu güncellemek zorunda kalabilir. PHP 7.3 2018'de çıkmıştı. Kurulumların yaklaşık yüzde 8'i ise 2005'te çıkan PHP 5.x sürümünde. NAS cihazları ve ağ gereçleri gibi PHP barındıran donanımların da güncellenmesi gerekiyor; Palo Alto Networks, PanOS tabanlı ürünleri için bir uyarı bildirimi yayımladı.

Asıl çözüm yamalanmış bir PHP sürümüne geçmek olsa da ek önlemler de var. Immunify360 gibi web uygulaması güvenlik duvarları kötü amaçlı istekleri daha sunucuya ulaşmadan engelleyebiliyor. Eski site kodunun PHP motoru dışında başka açıklar da barındırması muhtemel olduğundan, topyekûn bir güncelleme ve yükseltme çok daha doğru bir yol.

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

E-posta istemiyoruz. Yorumlar yayından önce otomatik olarak denetlenir.

Sıradaki

Tümü →