CVE-2026-53550
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
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).
Ocena ryzyka
Atakujący może zdalnie spowodować odmowę usługi (DoS) w aplikacjach Node.js używających js-yaml do parsowania niezaufanych danych YAML, blokując działanie serwera lub procesu roboczego na kilka sekund przy minimalnym nakładzie danych.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę js-yaml do wersji 4.2.0 lub nowszej (dla głównej gałęzi) albo 3.15.0 lub nowszej (dla gałęzi 3.x). Jeśli aktualizacja nie jest możliwa, należy ograniczyć przetwarzanie niezaufanych dokumentów YAML.
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-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-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. Prior to 4.2.0 and 3.15.0, a crafted YAML document can trigger algorithmic CPU exhaustion in js-yaml merge-key processing (<<) by repeating the same alias many times in a merge sequence. This causes quadratic parse-time behavior relative to input size and can block a Node.js worker/event loop for seconds with a relatively small payload (tens of KB), resulting in denial of service. The issue is in merge handling inside lib/loader.js. This vulnerability is fixed in 4.2.0 and 3.15.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

