CVE-2024-45812
Açıklama
JavaScript için bir frontend derleme araçları çerçevesi olan Vite'in etkilenen sürümlerinin, betikleri `cjs`/`iife`/`umd` çıktı formatında derlerken bir DOM Clobbering zafiyeti içerdiği tespit edilmiştir. Modüldeki DOM Clobbering gadget'ı, betiksiz saldırgan kontrollü HTML öğelerinin (örneğin, temizlenmemiş bir name özniteliğine sahip bir img etiketi) bulunduğu web sayfalarında siteler arası betik çalıştırmaya (XSS) yol açabilir. DOM Clobbering, saldırganın önce web sayfasına betik içermeyen, görünüşte zararsız HTML işaretlemeleri yerleştirdiği (örneğin bir gönderi veya yorum aracılığıyla) ve ardından mevcut JavaScript kodu içinde bulunan gadget'ları (js kod parçacıkları) kullanarak bunları yürütülebilir koda dönüştürdüğü bir kod yeniden kullanım saldırısı türüdür. Özellikle betiklerin assets klasöründen diğer betikleri dinamik olarak içe aktardığı ve geliştiricinin derleme çıktı formatını `cjs`, `iife` veya `umd` olarak ayarladığı durumlarda, Vite paketli betiklerde bir DOM Clobbering zafiyeti belirlenmiştir. Bu gibi durumlarda Vite, `__VITE_ASSET__` ile başlayan göreceli yolları `document.currentScript` üzerinden alınan URL ile değiştirir. Ancak bu uygulama, bir DOM Clobbering saldırısına karşı savunmasızdır. `document.currentScript` araması, tarayıcının adlandırılmış DOM ağacı öğesi erişim mekanizması aracılığıyla bir saldırgan tarafından gölgelenebilir. Bu manipülasyon, saldırganın hedeflenen betik öğesini kötü amaçlı bir HTML öğesiyle değiştirmesine olanak tanır. Bu gerçekleştiğinde, saldırgan kontrollü öğenin src özniteliği betikleri içe aktarmak için kullanılan URL olarak kullanılır ve bu da potansiyel olarak saldırgan kontrollü bir sunucudan betiklerin dinamik olarak yüklenmesine yol açar. Bu zafiyet, (`cjs`, `iife` veya `umd` çıktı formatıyla yapılandırılmış) Vite paketli dosyaları içeren ve kullanıcıların name veya id özniteliklerini uygun şekilde temizlemeden belirli betiksiz HTML etiketleri eklemesine izin veren web sitelerinde siteler arası betik çalıştırma (XSS) saldırılarıyla sonuçlanabilir. Bu sorun 5.4.6, 5.3.6, 5.2.14, 4.5.5 ve 3.2.11 sürümlerinde düzeltilmiştir. Kullanıcıların yükseltme yapmaları önerilir. Bu zafiyet için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
- vite5.4.6, 5.3.6, 5.2.14, 4.5.4, 3.2.11, 5.1.8 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| vitenpm | 5.4.0 ≤ v < 5.4.6, 5.3.0 ≤ v < 5.3.6, 5.2.0 ≤ v < 5.2.14, 4.0.0 ≤ v < 4.5.4, v < 3.2.11, 5.0.0 ≤ v < 5.1.8 | 5.4.6, 5.3.6, 5.2.14, 4.5.4, 3.2.11, 5.1.8 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.