WordPress’ten kritik yama: kod çalıştırma açığı kapatıldı

Anasayfa » WordPress’ten kritik yama: kod çalıştırma açığı kapatıldı
WordPress’ten kritik yama: kod çalıştırma açığı kapatıldı

WordPress, bazı sunucularda uzaktan kod çalıştırmaya kadar uzanabilen kritik bir açığı kapatan yamayı 22 Eylül’de yayımladı. CVSS puanı 9.2 olarak verilen ve CVE-2026-87902 olarak izlenen açık, 4.7.0 sürümünden 7.1.1’e kadar uzanan tüm destekli WordPress dallarını etkiliyor. Şirket, güvenlik düzeltmesinin 4.7’ye kadar geri taşındığını ve desteklenen her dal için ayrı paket yayımlandığını duyurdu.

WordPress, site sahiplerine hemen güncelleme çağrısı yaptı. Otomatik arka plan güncellemeleri açık olan siteler yama dağıtımını kendiliğinden almaya başladı; diğer yöneticilerin ise panelden güncelleme yapması ya da paketi WordPress.org üzerinden indirmesi gerekiyor. Şirket, ayrı bir geçici çözüm sunmadığını, bu nedenle güncellemenin tek düzeltme olduğunu belirtti.

Güncelleme listesi sürüm dalına göre değişiyor: 7.1.x kullananların 7.1.2’ye, 7.0.x kullananların 7.0.6’ya, 6.9.x kullananların 6.9.9’a, 6.8.x kullananların 6.8.10’a, 6.7.x kullananların 6.7.9’a ve 6.6.x kullananların 6.6.9’a geçmesi gerekiyor. WordPress, daha eski ve hâlâ desteklenen dallar için de yama geri taşımaları yaptı; bu kapsamda 4.7.37’ye kadar uzanan sürümler için de düzeltme yayımlandı. Tam liste sürüm notlarında yer alıyor.

Önemli bir ayrıntı, 17 Eylül’de yayımlanan WordPress güvenlik sürümünü kurmuş sitelerin de bu yamaya ihtiyaç duyması. 7.1.1 sürümü de etkilenenler arasında yer alıyor, ancak burada düzeltilen sorun 17 Eylül sürümündekilerden ayrı bir açık.

Hata, tema dosyası seçimi sırasında ortaya çıktı

Açık, WordPress’in bir sayfa için hangi şablon dosyasını seçeceğini belirlediği bölümde bulunuyor. Etkilenen sürümlerde yazılım, URL’nin bir kısmından aldığı değeri kendi ../ dizin aşımı kontrolünden geçirmedi. Aynı kontrolü komşu kod zaten kullanıyordu.

İstismar zinciri, WordPress’in oluşturduğu page-{değer}.php biçimindeki dosya adına dayanıyor. Çalışan bir saldırı için etkin temanın üst düzey klasörlerinden birinin adı da page- ile başlamalı ve hedef dosya .php uzantısıyla bitmeli. Bazı eski varsayılan WordPress temaları bu yapıyı sağlarken, mevcut varsayılan temalarda böyle bir klasör bulunmuyor.

Bu nedenle açık, WordPress’in tarif ettiği gibi tüm etkilenen sitelerde doğrudan tam kod çalıştırma anlamına gelmiyor. Yerel bir PHP dosyasını yüklemek, yalnızca o dosyanın zaten yaptığı işlemi çalıştırıyor. Bunun saldırganın seçtiği koda dönüşmesi için ikinci bir şart daha gerekiyor: sunucuda, yüklenince faydalı bir iş yapan bir PHP dosyasının zaten bulunması. WordPress’in açıklamasındaki “bazı sunucular” ifadesi bu farkı anlatıyor.

Güvenlik firması Patchstack, kendi analizinde bir sitenin ne kadar açıkta olduğunu anlamak için iki işaret sıraladı. Bunlardan ilki, etkin temada üst düzeyde page- ile başlayan bir klasör bulunup bulunmadığı. İkincisi ise PHP’nin register_argc_argv ayarının açık olup olmadığı; şirket, bunun bilinen bir kod çalıştırma tekniğine dayandığını aktardı.

Patchstack, bu iki göstergenin birer düzeltme olmadığını vurguluyor. Buna karşın, bir sitenin en kötü senaryoya ne kadar yakın olduğunu gösterdiklerini belirtiyor. register_argc_argv ayarı PHP 8.5’te varsayılan olarak kapalı, daha eski PHP sürümlerinde ise açık geliyor.

WordPress, açığı bulan kişinin Robert Ressl olduğunu açıkladı. Ressl, bulguyu temmuz ayında HackerOne üzerinden özel olarak bildirdi. Yama yayımlandığında ayrıntılı bir yazı da paylaştı; buna proof-of-concept kodu ve kendi içinde çalıştırılabilen bir test laboratuvarı eşlik etti.

Ressl’in gösterdiği saldırı, tüm sunucu üzerinde tam yetki değil, web sunucusu hesabının yetkileriyle kod çalıştırıyordu. Araştırmacı testi, yamalı sürümde ya da canlı bir sitede değil, izole yerel laboratuvarda WordPress 7.0.2 üzerinde yaptı. Bu çalışma, açık için hazırlanan teknik gösterimin hangi koşullarda işlediğini de ortaya koydu.

Ressl’e göre acil güncelleme yapamayan sistem yöneticileri, web istekleri için register_argc_argv ayarını kapatarak ve kullanılmayan PEAR bileşenlerini kaldırarak kod çalıştırma yolunu daraltabilir. Ancak bu adımlar temel açığı kapatmıyor.

22 Eylül itibarıyla açığın saldırılarda kullanıldığına dair herhangi bir bildirim yoktu ve U.S. CISA’nın Known Exploited Vulnerabilities kataloğunda da kayıt bulunmuyordu. WordPress ile Ressl, yorum için ayrıca bilgilendirildi.