CVE-2026-59868
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wysłać specjalnie spreparowany dokument YAML, który spowolni działanie serwera lub aplikacji, prowadząc do odmowy usługi (DoS) z powodu wyczerpania zasobów CPU.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę js-yaml do wersji 5.2.0 lub nowszej, która zawiera poprawkę eliminującą problem kwadratowego czasu przetwarzania.
Inne podatności w js-yaml
Zobacz wszystkie- CVE-2026-84375Wysokie
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.
- 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-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 5.0.0 before 5.2.0, when merge keys are enabled, js-yaml can spend quadratic CPU time parsing a document whose size grows only linearly when a chain of mappings uses merge keys where each mapping merges the previous one. This issue is fixed in version 5.2.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

