js-yaml — это анализатор и дампер JavaScript YAML. До версий 4.2.0 и 3.15.0 созданный документ YAML может вызвать алгоритмическое истощение ЦП при обработке ключей слияния js-yaml (<<) из-за многократного повторения одного и того же псевдонима в последовательности слияния. Это приводит к квадратичному поведению времени синтаксического анализа относительно размера входных данных и может блокировать цикл обработки/событий Node.js на несколько секунд с относительно небольшой полезной нагрузкой (десятки КБ), что приводит к отказу в обслуживании.
Проблема заключается в обработке слияния внутри lib/loader.js. Эта уязвимость исправлена в версиях 4.2.0 и 3.15.0.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Nodeca Js-Yaml
cpe:2.3:a:nodeca:js-yaml:*:*:*:*:*:node.js:*:*
|
— |
3.15.0
|
|
Nodeca Js-Yaml
cpe:2.3:a:nodeca:js-yaml:*:*:*:*:*:node.js:*:*
|
4.0.0
|
4.2.0
|