WordPress'te CORS Açığından RCE'ye Uzanan Zincir
Yanlış yapılandırılmış CORS başlıkları WordPress eklentilerinde CSRF ve dosya yükleme açıklarıyla birleşerek RCE'ye dönüşebiliyor. Bug bounty araştırmacıları için teknik analiz.
Bu içerik, 2024-2025 arasında gerçekleştirilen bug bounty çalışmalarında keşfedilen ve yamalanan üç gerçek WordPress zincirini konu alıyor: CORS yanlış yapılandırmasının nasıl CSRF, ayrıcalık yükseltme veya nonce sızıntısıyla birleşip Uzaktan Kod Çalıştırma (RCE) seviyesine ulaştığı anlatılıyor. Sorunun kökeninde, wp-admin/admin-ajax.php üzerinden çalışan eklentilerin Origin başlığını doğrudan Access-Control-Allow-Origin olarak yansıtması ve bunu Access-Control-Allow-Credentials: true ile birleştirmesi yatıyor; bu kombinasyon herhangi bir sitenin, kurbanın oturum çerezleriyle kimlik doğrulamalı istekler yapmasına izin veriyor.
İlk zincir örneğinde, saldırgan CORS açığını kullanarak zaman sınırlı ama tahmin edilebilir WordPress nonce değerini çapraz kaynaktan okuyor, ardından bu nonce ile dosya yükleme uç noktasına JPEG başlığı içine gizlenmiş bir PHP web shell yüklüyor. Makale ayrıca çift uzantı, null byte, .htaccess geçersiz kılma ve içerik türü sahteciliği gibi yaygın dosya yükleme doğrulama atlatma tekniklerini de listeliyor.
Mühendisler açısından önemi net: WordPress'in eklenti mimarisi, her eklentinin kendi AJAX uç noktasını ve genellikle kendi CORS mantığını tanımlamasına izin verdiği için bu güvenlik açığı sınıfı yapısal olarak yaygın hale geliyor. Güvenlik ekipleri için CORS başlıklarının izole bir 'veri sızıntısı' riski değil, kimlik doğrulama ve dosya işleme mantığıyla birleştiğinde kritik bir saldırı yüzeyi olarak değerlendirilmesi gerektiği vurgulanıyor.