CVE-2024-34343
Açıklama
Nuxt, Vue.js ile tam yığınlı (full-stack) web uygulamaları ve web siteleri oluşturmak için kullanılan ücretsiz ve açık kaynaklı bir çerçevedir. `navigateTo` fonksiyonu `javascript:` protokolünü engellemeye çalışır ancak `unjs/ufo` tarafından sağlanan API'leri doğru şekilde kullanmaz. Bu kütüphane ayrıca ayrıştırma tutarsızlıkları içermektedir. Fonksiyon önce belirtilen URL'nin bir protokole sahip olup olmadığını test eder; bu işlem URL ayrıştırması için unjs/ufo paketini kullanır. Bu fonksiyon etkili bir şekilde çalışır ve `javascript:` protokolü için true değerini döndürür. Bundan sonra URL, `parseURL` fonksiyonu kullanılarak ayrıştırılır. Bu fonksiyon, kötü biçimlendirilmiş URL'lerin ayrıştırılmasını reddeder. `javascript:alert(1)` ifadesinin ayrıştırılması tüm değerler için null/"" döndürür. Ardından, URL'nin protokolü `isScriptProtocol` fonksiyonu kullanılarak kontrol edilir. Bu fonksiyon girdiyi yalnızca bir protokol listesine karşı kontrol eder ve herhangi bir ayrıştırma işlemi gerçekleştirmez. Kötü biçimlendirilmiş URL'lerin ayrıştırılmasının reddedilmesi ve ek ayrıştırma yapılmaması, hiçbir protokol bulunamadığı için betik kontrollerinin başarısız olması anlamına gelir. Bir protokol tanımlanmış olsa bile, `parseURL` uygulamasında boşluklar temizlenmediğinden `isScriptProtocol` kontrolleri atlatılır. Belirli özel protokoller `parseURL`'in başında tanımlanmıştır. Bu diziye yeni bir satır veya sekme karakteri eklemek, özel protokol kontrolünü engelleyecek ve sonraki kontrolleri atlatacaktır. Bu durum YALNIZCA SSR gerçekleştikten sonra etkilidir; konum başlığı (location header) içindeki `javascript:` protokolü XSS tetiklemez. Bu sorun 3.12.4 sürümünde giderilmiştir ve tüm kullanıcıların yükseltme yapmaları önerilir. Bu güvenlik açığı için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
- nuxt nuxt3.12.4 ya da sonraki bir sürüm
- nuxt3.12.4 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| nuxt nuxt | v < 3.12.4 | 3.12.4 |
| nuxtnpm | v < 3.12.4 | 3.12.4 |
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.