CVE-2024-45389
Açıklama
Tamamen statik bir arama kütüphanesi olan Pagefind, dinamik JavaScript ve WebAssembly dosyalarını kullanıcının yüklediği ilk betiğin konumuna göre başlatır. Bu bilgi, `document.currentScript.src` değerine bakılarak toplanır. Pagefind sürüm 1.1.1 öncesinde, sayfadaki aksi takdirde zararsız olan HTML ile bu sorgunun "bozulması" (clobber) mümkündür. Bu durum, `document.currentScript.src` ifadesinin harici bir alan adı olarak çözümlenmesine neden olur ve bu alan adı daha sonra Pagefind tarafından bağımlılıkları yüklemek için kullanılır. Bu istismar, yalnızca bir saldırganın canlı, barındırılan bir web sitesine HTML enjekte edebildiği durumda çalışacaktır. Bu durumlarda, bu işlem saldırgana mevcut yetkilerini yükseltmenin bir yolu olarak hizmet eder. Bu senaryo, saldırganın sayfaya bazı öğeleri ekleyebilme (örneğin, `name` özniteliğine sahip `img` etiketleri) ancak diğerlerini ekleyememe yeteneğine sahip olduğunu varsayar; çünkü sayfaya bir `script` eklemek zaten kendi başına bir siteler arası betik çalıştırma (XSS) vektörü olacaktır. Pagefind, kaynağın geçerli bir betik öğesinden yüklendiğinden emin olarak sürüm 1.1.1'de bu çözümleme işlemini sıkılaştırmıştır. Bunun Pagefind aracılığıyla gerçek dünyada istismar edildiğine dair herhangi bir rapor bulunmamaktadır.
Nasıl düzeltilir
- pagefind pagefind1.1.1 ya da sonraki bir sürüm
- pagefind1.1.1 ya da sonraki bir sürüm
- @pagefind/default-ui1.1.1 ya da sonraki bir sürüm
- @pagefind/modular-ui1.1.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| pagefind pagefind | v < 1.1.1, 1.1.1 | 1.1.1 |
| pagefindnpm | v < 1.1.1 | 1.1.1 |
| @pagefind/default-uinpm | v < 1.1.1 | 1.1.1 |
| @pagefind/modular-uinpm | v < 1.1.1 | 1.1.1 |
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.