deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

CVE-2026-100382 sonrası web shell avı: MediaWiki External Data RCE'si için tespit rehberi

Bir dev.to tespit rehberi, operatörlere MediaWiki'nin External Data eklentisindeki CVSS 10 değerindeki kimlik doğrulaması gerektirmeyen RCE olan CVE-2026-100382 ile yerleştirilen web shell'leri bulma sürecini anlatıyor ve yamanın yanıtır sadece yarısı olduğu görüşünü savunuyor.

CVE-2026-100382 sonrası web shell avı: MediaWiki External Data RCE'si için tespit rehberi

Yama, yanıtır sadece yarısıdır

MediaWiki çalıştıran güvenlik ekiplerinin CVE-2026-100382 için net bir çözümü var: External Data eklentisini 3.7 sürümüne yükseltmek. Bir dev.to'daki tespit mühendisliği yazısının da ortaya koyduğu gibi, daha zor soru şu: saldırganın yükseltme yapılmadan önce bu açığı kullanarak bir web shell yerleştirip yerleştirmediği. Yazıya göre açıklamanın ardından görülen istismar deseni, ölçekli olarak aranabilecek kadar belirgin izler bırakıyor.

Açık kısaca

Dev.to yazısına göre External Data eklentisi 3.0 sürümünden beri sunucuda yerel programlar çalıştırabiliyor ve parser fonksiyonlarından biri üzerinden sağlanan girdi, filtrelenmeden bu çalıştırma noktasına ulaşıyordu. Ortaya çıkan CVE, kimlik doğrulaması gerektirmeyen bir uzaktan kod çalıştırmayı tanımlıyor, CVSS v4 altında 10.0 puanı aldı ve 3.7 öncesi tüm sürümleri etkiliyor. İstismarın doğada görüldüğü doğrulandı, bir kavram kanıtı Wikimedia Phabricator T434961 görevinde herkese açık ve yöneticiler 25 Eylül açıklamasından bir gün sonra otomatik denemeler kaydetti. Wikitext güvenilmeyen içerik olduğundan ve varsayılan eklenti yapılandırması bu yolu açıkta bıraktığından, açığı denemek için kimlik doğrulaması veya ayrıcalık gerekmiyor — savunmasız bir wiki'ye ulaşan her istek, başarılı olsun ya da olmasın, potansiyel bir istismar girişimidir.

Sızma nasıl göründü

Yazı tanınabilir bir dizilim tarif ediyor: eklentinin var olup olmadığını kontrol eden bir API sorgusu, ardından yoğun bir POST isteği serisi ve payload'ın az önce yazdığı PHP dosyalarının çekilmesi. Gözlemlenen shell'lerden biri ele geçirilmiş bir sunucunun skins dizininde bulunmuş — yazıda Lajoie'ye atfedilen bir bulgu — bu da skin ve upload dizinlerini her taramanın ilk turuna yerleştiriyor.

Yapılacak dört kontrol

Yazı bu dizilimi dört kontrole dönüştürüyor.

Dosya sistemi: web sunucusunun hizmet verdiği yazılabilir dizinlerde 25 Eylül veya sonrasında oluşturulmuş PHP dosyalarını say; Nx_.php veya NX_.php ile eşleşen adlara öncelik ver, skin ve upload dizinleri önce gelir.

Web logları: eklenti yoklayan bir istek, tek bir kaynak adresten api.php'ye tekrarlanan POST'lar ve az önce ortaya çıkmış dosyalara yapılan GET isteklerini birleştiren kümeleri ara. Yeni oluşturulmuş bir dosyayı çekmek en güçlü sinyaldir, çünkü normal trafik neredeyse hiçbir zaman bir dosyayı var olur olmaz istemez.

İçerik bütünlüğü: eklenti ve skin dizinlerini bilinen iyi bir dağıtımla karşılaştır. Saldırganın eklediği her şey, platformun sürüm kontrolünün kapsadığının dışındadır.

Çalıştırma yapılandırması: upload dizinlerinde PHP çalıştırmanın web sunucusu düzeyinde kapalı olduğunu doğrula. Yazı uyarıyor: .htaccess kuralı tek başına pek bir şey kanıtlamaz, çünkü sunucunun yapılandırmasına bağlı olarak atlanabilir veya yok sayılabilir.

Yazar, erişim logları üzerinde küçük bir düzenli ifade filtresinin aday satırları ortaya çıkarmak için çoğu zaman yeterli olduğunu, ancak eşleşmeleri doğrulanmış sızma değil — kaynak adres ve zaman kümesiyle ilişkilendirilmiş — ipucu olarak değerlendirmeyi öneriyor.

Maruziyetin kapsamı

External Data isteğe bağlı bir eklentidir, dolayısıyla maruziyet kurulu olanlara bağlıdır, MediaWiki çekirdek sürümüne değil. Yazı, belirli bir platform derlemesinin belirli bir eklenti setini ima ettiğini varsaymak yerine Special:Version ve dosya sistemi üzerinden bir envanter oluşturmayı öneriyor. Kaba bir büyüklük tahmini olarak, http.body="ExternalData" sorgusu bir ZoomEye sorgusu yazı sırasında 1128 varlık döndürdü — bu, yanıtlarda dizeye kaç yerde değinildiğine dair bir gösterge, savunmasız sunucuların listesi değil.

Giderim yükseltmenin ötesine geçer

Yazıda ortaya konan giderim dizilimi şöyle: 3.7'ye yükselt ya da eklentiyi devre dışı bırak, ardından avı tamamla; eski bir sürüm çalıştırmış her sunucuda veritabanı parolasını, gizli anahtarları ve yönetici parolalarını değiştir, saklı API anahtarlarını yenile; doğrulanan shell'leri sil ve sonrasında yeniden tara, çünkü eksik bir temizlik aynı erişim yolunu yeniden açar; ve son kontrol olarak Special:Version üzerinde dağıtılan sürümü doğrula.

Neden önemli

Web sunucusunun hizmet verdiği bir dizinde duran bir web shell, giriş yolunu kapatan yamadan sonra da hayatta kalır. Bu konumdan LocalSettings.php veritabanı kimlik bilgilerini, gizli anahtarları ve API anahtarlarını ortaya çıkarır ve wiki'nin erişilebilirliği onu ilerideki faaliyetler için elverişli bir sunucu yapar. Yamanmış sürümü doğrulamakla yetinen bir tespit yaklaşımı bu erişimi yerinde bırakır; yazı avı bu yüzden isteğe bağlı bir sonraki adım değil, yanıtır zorunlu ikinci yarısı olarak görüyor.

  • #mediawiki
  • #security
  • #web-shell
  • #detection
  • #rce

İlgili yazılar