WordPress yorum açığı, yöneticinin oturumunda RCE’ye dönebiliyor

Anasayfa » WordPress yorum açığı, yöneticinin oturumunda RCE’ye dönebiliyor
WordPress yorum açığı, yöneticinin oturumunda RCE’ye dönebiliyor

WordPress’te keşfedilen ve CVE-2026-93485 olarak izlenen açık, anonim bir yorumdan başlayan XSS zincirini yönetici oturumu üzerinden sunucu tarafında kod çalıştırmaya kadar taşıyabiliyor. WordPress, “Comment2Shell” adı verilen bu hatayı 17 Eylül’de yayımlanan 7.1.1 sürümünde kapattı ve site sahiplerine vakit kaybetmeden güncelleme yapmalarını söyledi.

Bugüne kadar saldırılarda kullanıldığına dair bir işaret yok. Açık, ABD hükümetinin aktif istismar edilen yazılım hataları listesinde de yer almıyor. Yamanın derecelendirmesini yapan Patchstack, zafiyete CVSS ölçeğinde 7.1 puan verdi.

Yorum işleme akışındaki boşluk

Hata, WordPress’in bir yorumu kaydederken tehlikeli HTML’i denetlemesi ile yorum sayfada gösterilirken onu yeniden biçimlendirmesi arasındaki boşlukta ortaya çıktı. Güvenlik araştırmacısı Rafie Muhammad, 21 Eylül’de yayımladığı teknik notta saldırı zincirinin tamamını ayrıntılandırdı.

Saldırı, yorum içine izin verilen bir HTML etiketinin özniteliği içinde yerleştirilen satır sonuna dayanıyordu. WordPress yorumu ekranda gösterirken yaptığı biçimlendirme adımlarından biri etiketi ikiye ayırdı ve saldırganın metnini tarayıcının canlı bir olay işleyici olarak yorumlayacağı bir yere taşıdı. Böylece kod, sayfa açılır açılmaz çalıştı; tıklama gerekmedi.

Bu aşamada çalışan betik, sayfayı açan herkesin tarayıcısında yürüdü. Kişinin giriş yapmış olup olmaması sonucu değiştirmedi; betik, o kullanıcının site üzerindeki yetki seviyesiyle işlem yaptı. Ancak sunucu tarafında etki oluşturmak için bir koşul daha gerekiyordu: yorumu içeren sayfayı giriş yapmış bir yönetici açmalıydı.

Yüklenen betik, yönetici oturumunu kullanarak bir eklenti yükleyebiliyordu. Bu eklentinin içine yerleştirilen küçük bir web shell dosyası, saldırganın gönderdiği komutları sunucuda çalıştırabiliyor. Güvenlik ekiplerinin uzun süredir bildiği bu yöntem, tarayıcıdaki yönetici oturumundan sunucu kontrolüne geçiş için kullanılan klasik yollardan biri.

Hangi temalar risk altında

Bu zincirin çalışması, sitenin yorumları nasıl gösterdiğine de bağlıydı. Açık, WordPress’te Twenty Twenty-Two’dan bu yana varsayılan olan block theme kullanan sitelerde etkiliydi. Bazı klasik temalar da aynı yorum biçimlendirme adımını kullandığı için etkilendi; teknik notta Twenty Twenty-One örnek olarak yer aldı.

WordPress, açığı yalnızca “comment approval” koşuluyla sömürülebilir diye tanımladı. Yeni bir yazarın yorumu normalde onaylanana kadar bekletilir, bu yüzden kendi kendine sayfada görünmez. Ancak araştırmacı, bu kontrolü aşmanın yollarını anlattı ve yorumun onay almadan da sayfaya ulaşabildiğini gösterdi. Patchstack’in ifadesiyle, “moderation isn’t a security control.”

WordPress çekirdeğini güncellemek istemeyen ya da hemen güncelleyemeyen siteler için geçici seçenekler de var. Yorumları ilgili gönderilerde kapatmak ya da site genelinde yorum özelliğini devre dışı bırakmak, crafted comment’in geçeceği kapıyı kapatabiliyor. Web uygulama güvenlik duvarı ya da bir güvenlik eklentisi de saldırı amaçlı hazırlanmış yorumu engelleyebiliyor.

Ne WordPress ne de araştırmacı ayrı bir geçici çözüm yayımladı. Muhammad, WordPress çekirdeğinin doğrudan güncellenmesini önerdi ve 7.1.1’in bir güvenlik sürümü olduğunun altını çizdi. Güncelleme açığı kapatıyor, ancak saldırganın daha önce yaptığı değişiklikleri geri almıyor. Bu nedenle hedef alındığını düşünen sitelerin, tanımadığı eklenti ya da dosyaları ayrıca incelemesi gerekiyor.

Yorum akışındaki bu boşluk, WordPress’in çekirdeğinde güvenlik denetimi ile ekranda gösterim adımları arasındaki ayrımı suistimal ediyor. Açıktan yararlanmak için yorumun sayfada görünmesi şart olduğu için WordPress bunu “subject to comment approval” diye tanımladı. Ancak new author tarafından bırakılan yorumlar normal koşulda bekletildiği halde, araştırmacının gösterdiği yöntemler bu beklemeyi aşabiliyor. Bu nedenle, onay mekanizması tek başına koruma sağlamıyor.

Teknik zincirin ilk kısmı tarayıcıda çalışıyor, ikinci kısmı ise yönetici oturumu üzerinden sunucuya uzanıyor. Bu fark, saldırının hangi aşamada hangi yetkiyi kullandığını netleştiriyor. Betik, siteyi ziyaret eden herkesin tarayıcısında çalışabiliyor; fakat eklenti yüklenip web shell bırakılması için yönetici hesabı gerekiyor.

7.1.1 ile kapatılan diğer açıklar

WordPress 7.1.1 toplam 11 güvenlik sorununu giderdi. Yorum açığı, kimlik doğrulaması olmayan bir saldırganın erişebildiği tek hata oldu. Diğer çoğu sorun ise en azından giriş yapmış bir kullanıcı ve belirli bir yetki seviyesi gerektiriyordu.

Aynı sürüm, Click2Shell adlı ikinci bir açığı da düzeltti. Bu hatada saldırgan, hazırlanmış bir bağlantıyı kullanarak WordPress’e bir tema yükletebiliyor; ardından o temadaki ikinci bir zafiyetle sunucuda kod çalıştırabiliyordu. Bu senaryoda da saldırının tamamlanması için bağlantıyı bir yönetici oturumuyla açmak gerekiyordu.

WordPress çekirdeği bu yıl başka ciddi açıklıklarla da gündeme geldi. Temmuz ayında wp2shell adı verilen bir hata, saldırganların hiç giriş yapmadan kod çalıştırmasına izin vermişti; ABD makamları daha sonra bu açığı gerçek saldırılarda kullanılanlar listesine aldı. Ağustos ayında ise araştırmacılar, giriş sayfasındaki bir betik açığını yönetici üzerinden kod çalıştırmaya çevirmişti. Bu iki zafiyet, yorum işleme hatasından ayrı olaylar olarak kayda geçti.

WordPress 7.1.1’de düzeltilen toplam 11 sorun arasında Comment2Shell ile Click2Shell öne çıktı. İlk açık, anonim kullanıcıların bırakabildiği bir yorum üzerinden tarayıcı tarafında başlıyor; ikinci açık ise hazırlanmış bir bağlantı ile tema yükleme ve ardından kod çalıştırma zinciri kuruyordu. İki hata da farklı yollar izlese de, ikisinin de tam etki için yönetici oturumu gerektirmesi öne çıktı.

Rafie Muhammad’in 21 Eylül tarihli notu, Comment2Shell zincirinin nasıl işlediğini satır sonu manipülasyonu, izin verilen HTML etiketi ve canlı olay işleyici aşamalarıyla ortaya koydu. WordPress’in 17 Eylül’de yayımladığı 7.1.1 sürümü bu yolu kapattı ve desteklenen kollar için güncelleme çağrısı yaptı. Patchstack’in 7.1 puan verdiği açık için şu ana kadar istismar kaydı bulunmuyor.