CVE-2026-24001
Açıklama
jsdiff bir JavaScript metin farkı belirleme uygulamasıdır. 8.0.3, 5.2.2, 4.0.4 ve 3.5.1 versiyonlarından öncekilerde, dosya adı başlıkları `\r`, `\u2028` veya `\u2029` satır sonu karakterlerini içeren bir yamayı ayrıştırmaya çalışmak, `parsePatch` metodunun sonsuz döngüye girmesine neden olabilir. Bu durum, işlem bellek yetersizliği nedeniyle çökerken sınırsız bellek tüketimine yol açar. Bu nedenle, kullanıcı tarafından sağlanan bir yamayı girdi olarak kullanarak `parsePatch` metodunu çağıran uygulamalar muhtemelen bir hizmet reddi saldırısına karşı savunmasızdır. Zafiyeti tetiklemek için büyük bir yük gerekmediğinden, kullanıcı girdisindeki boyut sınırları herhangi bir koruma sağlamaz. Ayrıca, bazı uygulamalar, kullanıcı yine de dosya adı başlıklarını kontrol edebiliyorsa (örneğin, farkı alınacak dosyaların adlarını doğrudan sağlayarak), uygulamanın kendisi tarafından oluşturulan bir yama üzerinde `parsePatch` çağrıldığında bile savunmasız olabilir. `applyPatch` metodu da benzer şekilde etkilenir; çünkü arka planda bu diziyi `parsePatch` kullanarak ayrıştırdığı için yalnızca bir yamanın dize temsiliyle argüman olarak çağrıldığında etkilenir. Kütüphanenin diğer metodları etkilenmemiştir. Son olarak, aynı satır sonu karakterlerinin bir yamanın *patch* başlığında (aynı zamanda "leading garbage" olarak bilinir) mevcut olması durumunda ortaya çıkan ikinci ve daha az bağımlı bir hata olan ReDOS da görülmektedir. Kötü niyetle hazırlanmış *n* uzunluğundaki bir yama başlığını ayrıştırmak, `parsePatch` için O(*n*³) zaman alabilir. Versiyonlar 8.0.3, 5.2.2, 4.0.4 ve 3.5.1 bir düzeltme içerir. Geçici çözüm olarak, şu karakterlerden herhangi birini içeren yamaları ayrıştırmayı denemeyin: `\r`, `\u2028` veya `\u2029`.
Nasıl düzeltilir
- kpdecker jsdiff3.5.1, 4.0.4, 5.2.2, 8.0.3 ya da sonraki bir sürüm
- diff8.0.3, 5.2.2, 4.0.4, 3.5.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| kpdecker jsdiff | v < 3.5.1, 4.0.0 ≤ v < 4.0.4, 5.0.0 ≤ v < 5.2.2, 6.0.0 ≤ v < 8.0.3 | 3.5.1, 4.0.4, 5.2.2, 8.0.3 |
| diffnpm | 6.0.0 ≤ v < 8.0.3, 5.0.0 ≤ v < 5.2.2, 4.0.0 ≤ v < 4.0.4, v < 3.5.1 | 8.0.3, 5.2.2, 4.0.4, 3.5.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.