Katalog CVE

CVE-2026-73643

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.34%

Percentyl 27 - wyżej niż 27% wszystkich znanych CVE

Streszczenie

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.

Ocena ryzyka

Atakujący może wysłać mały, specjalnie spreparowany dokument YAML, powodując przeciążenie CPU i zablokowanie aplikacji, co prowadzi do odmowy usługi.

Rekomendacja

Zaleca się aktualizację js-yaml do wersji 5.2.2 lub nowszej oraz ograniczenie przetwarzania niezaufanych danych YAML.

Oryginalny opis (angielski, źródło NVD)

js-yaml is a JavaScript YAML parser and dumper. From 5.0.0 until 5.2.2, parsing a small YAML document can take exponential time when an application calls load() or loadAll() on untrusted input. In src/parser/parser.ts, readFlowCollection uses restoreState and calls parseNode a second time when a flow-sequence entry is recognized as a key: value pair. If the key is a nested flow sequence of the same shape, every level is parsed twice, causing O(2^n) work and allowing an input under 200 bytes to keep one CPU busy for minutes, block the Node.js event loop, and stall the process. No anchors, aliases, merges, tags, or nondefault options are required. This issue is fixed in version 5.2.2.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS