CVE-2026-84375
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 32 - wyżej niż 32% wszystkich znanych CVE
Streszczenie
js-yaml, parser i dumper YAML w JavaScript, od wersji 3.0.0 do 3.15.2 oraz 4.3.2, ma podatność w maxTotalMergeKeys w lib/js-yaml/loader.js i lib/loader.js, która nie liczy pustych źródeł mapowania podczas przetwarzania klucza merge <<. Atakujący może aliasować dużą sekwencję pustych mapowań do wielu celów merge, powodując przetwarzanie O(N * K) bez osiągnięcia limitu zasobów. Mały dokument YAML może powodować długotrwałe zużycie CPU w aplikacjach przetwarzających niezaufany YAML, a przetwarzanie merge jest domyślnie włączone.
Ocena ryzyka
Podatność może prowadzić do ataków DoS poprzez nadmierne zużycie CPU, co może spowolnić lub unieruchomić aplikacje przetwarzające niezaufane dane YAML.
Rekomendacja
Zaleca się aktualizację js-yaml do wersji 3.15.2 lub 4.3.2, które zawierają poprawkę. Jeśli to niemożliwe, rozważ wyłączenie przetwarzania merge lub ograniczenie źródeł danych YAML.
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-59870Średnie
Podatność w bibliotece js-yaml (wersje 5.0.0 do 5.2.0) powoduje nadmierne zużycie procesora podczas parsowania spreparowanego dokumentu YAML z tagiem !!omap. Funkcja omapTag.addItem() wykonuje liniowe skanowanie w poszukiwaniu duplikatów kluczy przy każdym wstawieniu, co prowadzi do złożoności obliczeniowej O(n^2).
- 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).
Oryginalny opis (angielski, źródło NVD)
js-yaml is a JavaScript YAML parser and dumper. From 3.0.0 until 3.15.2 and 4.3.2, 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. This issue is fixed in versions 3.15.2 and 4.3.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

