· kaynak dev.to (home feed)
WordPress Forminator eklentisindeki kritik 9.8 dosya yükleme açığı 1.56.2 sürümünde giderildi
Forminator Forms'ta tek bir dikey çizgi karakteri, dosya türü engelleme listesini atlayarak kimliği doğrulanmamış saldırganların çalıştırılabilir PHP dosyaları yüklemesine olanak tanıyor. 1.56.1 veya önceki sürümleri kullanan siteler 1.56.2'ye güncellemeli.

Yaygın olarak kullanılan bir WordPress form oluşturucu eklentisi olan Forminator Forms'taki kritik düzeyde bir güvenlik açığı, kimliği doğrulanmamış saldırganların siteye istedikleri PHP dosyalarını yükleyip çalıştırmasına imkân veriyor. CVE-2026-15748 olarak kayıt altına alınan ve CVSS 3.1 ölçeğinde 9.8 olarak derecelendirilen bu açık, 1.56.1 ve önceki sürümleri etkiliyor ve 1.56.2 sürümünde giderildi. Wordfence'ın kamuya açık bildiriminden yola çıkarak hatayı yeniden inceleyen ve dev.to'da yayımlanan teknik bir incelemeye göre eklenti 600.000'den fazla WordPress sitesinde etkin durumda; sorunu, Wordfence'ın hata ödül programı kapsamında daroo takma adlı bir araştırmacı bildirdi.
Tek bir ön koşul var: Hedeflenen formda hem bir Dosya Yükleme (File Upload) alanı hem de bir Seçim (Select) alanı bulunmalı.
Birleşen iki zafiyet
İnceleme, uzaktan kod yürütmenin tek bir hatanın değil, tek bir sömürü zincirinde birleşen iki bağımsız zafiyetin sonucu olduğunu açıklıyor.
İlki, Forminator'ın bir yükleme alanının hangi dosya türlerini kabul edeceğine nasıl karar verdiğiyle ilgili. Form gönderimleri kimlik doğrulaması gerektirmeyen bir admin-ajax.php eylemi üzerinden işleniyor ve yükleme alanına ilişkin izinli tür yapılandırması, sunucuda saklanan form tanımından okunmak yerine istekte taşınan verilerden oluşturuluyor. Bu, saldırganın sahte bir yükleme alanı yapılandırmasını alakasız bir alanın — Select alanının — değeri içine gömebileceği ve yönetici yükleme alanını jpg veya png gibi resim biçimleriyle sınırlamış olsa bile gönderim anında kabul edilen türleri yeniden tanımlayabileceği anlamına geliyor.
İkinci zafiyet, eklentinin kalan güvenlik denetiminde: yükleme işleyicisindeki tehlikeli uzantı ve MIME türleri engelleme listesi. Denetim, gönderilen MIME türünü girdide hiçbir normalleştirme yapmadan bir PHP dizisindeki anahtar olarak birebir arıyor. MIME dizgisine tek bir dikey çizgi karakteri eklemek bu denetimi etkisiz kılıyor: "application/x-php" türü engelleniyor ama "application/x-php|" engelleme listesinde hiçbir girdiyle eşleşmediği için geçebiliyor.
İki açık birleştiğinde saldırgan yüklenen dosyanın adını ve içeriğini kontrol edebiliyor; böylece saldırganın seçtiği kodu içeren bir PHP dosyası yükleme dizinine yazılabiliyor.
Özel depolama son korumayı ortadan kaldırıyor
Varsayılan olarak Forminator'ın yükleme dizini, PHP yürütmesini devre dışı bırakan bir .htaccess dosyası içerir; bu yüzden yüklenen bir .php dosyası çoğunlukla çalıştırılmak yerine hareketsiz metin olarak sunulur. Wordfence'ın bildirimine atıf yapan inceleme, bir yönetici özel dosya yükleme depolama kökü yapılandırdığında bu korumanın fiilen ortadan kalktığına dikkat çekiyor. .htaccess dosyasının bir ön yüz gönderimi işlenirken üretilmesi gerekiyor ancak onu yazan WordPress yardımcı işlevi bu kod yolunda yüklenmiyor. Sonuç olarak dosyalar, hiçbir yürütme koruması oluşturulmadan özel dizinde birikebiliyor ve yüklenen dosyayı URL üzerinden talep etmek, sunucunun onu PHP olarak çalıştırması için yeterli — kimlik doğrulaması ya da ek hile gerekmiyor.
1.56.2'de neler değişti
Forminator 1.56.2'deki düzeltme iki yapısal sorunu da ele alıyor. Bir yükleme alanının izinli dosya türleri artık yalnızca sunucuda saklanan form yapılandırmasından alınıyor; böylece istek verileri bunları yeniden tanımlayamıyor. Tehlikeli tür engelleme listesi karşılaştırması da eşleştirmeden önce girdiyi normalleştirecek şekilde değiştirildi; yani dikey çizgi gibi sondaki ayırıcılar artık denetimi atlayamıyor.
Forminator çalıştıran yöneticiler en kısa sürede 1.56.2'ye güncellemeli. Özel yükleme depolama kökü kullanan ya da Select alanlarını File Upload alanlarıyla birleştiren formlara sahip siteler, bildirimde açıklanan savunmasız yapılandırmanın tam ortasında yer alıyor.
Neden önemli
Kimlik doğrulaması, ayrıcalık ve kullanıcı etkileşimi gerektirmeyen, altı haneli kurulum tabanına sahip bir eklentideki 9.8 dereceli bir açık, bir WordPress güvenlik açığının bir siteye mal olabileceği bedelin tavana yakınında duruyor — bildirimde kayıtlı CVSS vektörü, gizlilik, bütünlük ve erişilebilirlik üzerindeki etkinin yüksek olduğuna işaret ediyor. Acil yama ihtiyacının ötesinde bu hata, iki tekrarlayan tasarım hatası hakkında kompakt bir ders: sunucu tarafı ayarının olması gereken yerde istemci tarafından sağlanan veriye güvenmek ve bir engelleme listesini normalleştirilmiş bir karşılaştırma yerine birebir dizgi eşleşmesi olarak uygulamak. İkisi de yapılması kolay hatalar ve bu örnek gösterdiği gibi, çakıştıklarında çok pahalıya mal oluyorlar.
- #wordpress
- #security
- #php
- #cve
- #plugins
İlgili yazılar
- WordPress Core'daki uzaktan dosya dahil etme zafiyeti CVE-2026-87902 aktif olarak istismar ediliyor
- WordPress CVE-2026-87902, yama yayınlandıktan bir gün sonra sömürülmeye başladı; honeypotlar 64 deneme kaydetti
- ScreenConnect client bypassı CVE-2026-84869 solucan benzeri yayılımla aktif olarak sömürülüyor