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.
Attack Parameters
Impact Assessment
CVSS Vector v3.1
Weakness Type (CWE)
Vulnerable Products 2
| Configuration | From (including) | Up to (excluding) |
|---|---|---|
|
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
|