CVE-2025-64718
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 33 - wyżej niż 33% wszystkich znanych CVE
Streszczenie
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).
Ocena ryzyka
Atakujący może zanieczyścić prototyp obiektów, co może prowadzić do wykonania kodu, obejścia zabezpieczeń lub innych poważnych konsekwencji w aplikacjach parsujących niezaufane dane YAML.
Rekomendacja
Zaktualizuj js-yaml do wersji 4.1.1 lub 3.14.2 (lub nowszej). Dodatkowo rozważ użycie flagi node --disable-proto=delete lub środowiska Deno.
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-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. In js-yaml before 4.1.1 and 3.14.2, it's possible for an attacker to modify the prototype of the result of a parsed yaml document via prototype pollution (`__proto__`). All users who parse untrusted yaml documents may be impacted. The problem is patched in js-yaml 4.1.1 and 3.14.2. Users can protect against this kind of attack on the server by using `node --disable-proto=delete` or `deno` (in Deno, pollution protection is on by default).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

