CVE-2026-84375
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
js-yaml to parser i dumper YAML w JavaScript. Od wersji 3.0.0 do 3.15.2, 4.3.2 i 5.4.1, maxTotalMergeKeys w lib/js-yaml/loader.js i lib/loader.js nie liczy pustych źródeł map podczas przetwarzania klucza scalania <<. Atakujący może aliasować dużą sekwencję pustych map do wielu celów scalania, powodując przetwarzanie O(N * K), podczas gdy totalMergeKeys pozostaje niezmienione i skonfigurowany limit zasobów nigdy nie jest osiągany. Stosunkowo mały dokument YAML może powodować długotrwałe zużycie CPU w aplikacjach przetwarzających niezaufany YAML, a przetwarzanie scalania jest domyślnie włączone w tych liniach wydań. W wersjach v3 i v4 scalanie jest domyślnie włączone, więc wynik dotkliwości jest wyższy. Problem naprawiono w wersjach 3.15.2, 4.3.2 i 5.4.1.
Ocena ryzyka
Ryzyko obejmuje atak DoS poprzez długotrwałe zużycie CPU, co może prowadzić do niedostępności aplikacji przetwarzających niezaufany YAML.
Rekomendacja
Należy zaktualizować js-yaml do wersji 3.15.2, 4.3.2 lub 5.4.1 (w zależności od używanej linii wydań), aby wyeliminować podatność.
Inne podatności w js-yaml
Zobacz wszystkie- CVE-2026-73643Wysokie
js-yaml to parser i serializator YAML w JavaScript. Od wersji 5.0.0 do 5.2.2, parsowanie małego dokumentu YAML może zająć wykładniczy czas, gdy aplikacja wywołuje load() lub loadAll() na niezaufanych danych. W src/parser/parser.ts, readFlowCollection używa restoreState i wywołuje parseNode drugi raz, gdy wpis sekwencji przepływowej jest rozpoznawany jako para klucz: wartość. Jeśli klucz jest zagnieżdżoną sekwencją przepływową o tym samym kształcie, każdy poziom jest parsowany dwukrotnie, co powoduje pracę O(2^n) i pozwala wejściu poniżej 200 bajtów zająć jeden rdzeń CPU na minuty, blokować pętlę zdarzeń Node.js i zatrzymać proces. Nie są wymagane kotwice, aliasy, scalenia, tagi ani niestandardowe opcje. Problem naprawiono w wersji 5.2.2.
- CVE-2026-59870Wysokie
js-yaml przed wersjami 3.15.1, 4.3.1 i 5.2.1 zawiera podatność na nadmierne zużycie procesora w obsłudze tagu !!omap w YAML11_SCHEMA. Funkcja omapTag.addItem() wykonuje liniowe skanowanie duplikatów kluczy przy każdej insercji, co powoduje zużycie CPU O(n^2) podczas parsowania spreparowanego dokumentu z mapą uporządkowaną. W wersjach 3 i 4 tag !!omap jest aktywny i domyślnie wykorzystywalny, w wersji 5 nie jest domyślnie używany.
- CVE-2026-59869Wysokie
Podatność w bibliotece js-yaml (JavaScript YAML parser i dumper) powoduje kwadratowy wzrost czasu CPU podczas przetwarzania dokumentów YAML zawierających łańcuch mapowań z kluczami scalania (merge keys). Problem występuje w wersjach od 3.0.0 do 3.14.0 oraz od 4.0.0 do 4.2.0.
- CVE-2026-59868Średnie
Podatność w bibliotece js-yaml (wersje od 5.0.0 do 5.2.0) powoduje kwadratowy wzrost czasu procesora podczas parsowania dokumentów YAML z włączonymi kluczami scalania. Łańcuch mapowań, gdzie każdy wpis scala poprzedni, prowadzi do nadmiernego obciążenia CPU.
- CVE-2026-53550Średnie
Podatność w bibliotece js-yaml (parser YAML dla JavaScript) przed wersjami 4.2.0 i 3.15.0 umożliwia atak DoS poprzez wysłanie spreparowanego dokumentu YAML, który powoduje kwadratową złożoność czasową podczas przetwarzania kluczy scalających (<<). Wielokrotne powtórzenie tego samego aliasu w sekwencji scalania prowadzi do wyczerpania mocy obliczeniowej procesora i zablokowania pętli zdarzeń Node.js na kilka sekund przy stosunkowo małym ładunku (kilkadziesiąt KB).
- CVE-2025-64718Średnie
js-yaml to parser i dumper YAML dla JavaScript. W js-yaml przed 4.1.1 i 3.14.2 atakujący może zmodyfikować prototyp wyniku parsowanego dokumentu YAML poprzez zanieczyszczenie prototypu (__proto__). Wszyscy użytkownicy parsujący niezaufane dokumenty YAML mogą być narażeni. Problem został naprawiony w js-yaml 4.1.1 i 3.14.2. Użytkownicy mogą chronić się przed tego typu atakiem na serwerze, używając node --disable-proto=delete lub deno (w Deno ochrona przed zanieczyszczeniem jest domyślnie włączona).
Oryginalny opis (angielski, źródło NVD)
js-yaml is a JavaScript YAML parser and dumper. From 3.0.0 until 3.15.2, 4.3.2, and 5.4.1, maxTotalMergeKeys in lib/js-yaml/loader.js and lib/loader.js does not count empty mapping sources while processing the merge key <<. An attacker can alias a large sequence of empty mappings into many merge targets, causing O(N * K) processing while totalMergeKeys remains unchanged and the configured resource limit is never reached. A relatively small YAML document can therefore cause prolonged CPU consumption in applications that parse untrusted YAML, and merge processing is enabled by default on these release lines. In v3 & v4, merge is enabled by default so the severity score is higher. This issue is fixed in versions 3.15.2, 4.3.2, and 5.4.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

