js-yaml is a JavaScript YAML parser and dumper. From 3.0.0 until 3.15.2, 4.3.2, and 5.4.1, maxTotalMergeKeys in lib/js-yaml/loader.js and lib/loader.js does not count empty mapping sources while processing the merge key <<. An attacker can alias a large sequence of empty mappings into many merge targets, causing O(N * K) processing while totalMergeKeys remains unchanged and the configured resource limit is never reached. A relatively small YAML document can therefore cause prolonged CPU consumption in applications that parse untrusted YAML, and merge processing is enabled by default on these release lines. In v3 & v4, merge is enabled by default so the severity score is higher. This issue is fixed in versions 3.15.2, 4.3.2, and 5.4.1.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-400",
"CWE-407"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84375.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.15.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.3.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "5.0.0"
},
{
"fixed": "5.4.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "3485bc06ff8a0251505f44a00414d90df2466639"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "6a8e05f9a485188ed730ac81e81ae221352ef480"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "d90b6612a5a84385bdcb556c44578eac76dc0f6b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "3.15.2",
"range": [
{
"fixed": "5c45bd6e960603c13644f5cc8b572ca257723b36"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "4.3.2",
"range": [
{
"fixed": "79ca68d90f333fbe6d9e42827527e62636200191"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "5.4.1",
"range": [
{
"fixed": "e5a3ba0efee53629b979f784cd53736f89ea61b6"
}
],
"source": "REFERENCES_TAG"
}
]
}