Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources or documents need attention: 275/275 feeds/APIs · 460/469 docs · 9/9 advisories · checked 20:22 UTC Customize Public modeDiscuss ChangeIntel on Discord

js-yaml: Quadratic-complexity DoS in merge key handling via repeated aliases

Collected exploitation and prediction evidence

Risk source coverage

CISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.

No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.

cve-program · CVE-2026-53550

Published

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.

Source published
22 Jun 2026 14:59:14 UTC
Source modified
29 Jun 2026 15:06:58 UTC
Observed here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 3.1 · 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

euvd · EUVD-2026-38256

Published

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.

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Jun 22, 2026, 2:59:14 PM

dateUpdated: Jun 29, 2026, 3:06:58 PM

15 related source bulletins · separate from aliases

openSUSE-SU-2026:21448-1: Security update for agama-web-ui

CVE-2025-7783 · CVE-2026-12143 · CVE-2026-13149 · CVE-2026-13311 · CVE-2026-13676 · CVE-2026-27601 · CVE-2026-40181 · CVE-2026-49356 · CVE-2026-53550 · CVE-2026-53632 · CVE-2026-54466 · CVE-2026-54490 · CVE-2026-55602

openSUSE-SU-2026:11452-1: agama-integration-tests-1785848065.5562c7c-4.1 on GA media

CVE-2026-13149 · CVE-2026-27699 · CVE-2026-48779 · CVE-2026-53550

openSUSE-SU-2026:11149-1: python311-pytest-html-4.2.0-3.1 on GA media

CVE-2026-13311 · CVE-2026-53550

openSUSE-SU-2026:11680-1: agama-web-ui-24+0.a836cced5-52.1 on GA media

CVE-2025-7783 · CVE-2026-13149 · CVE-2026-13676 · CVE-2026-33245 · CVE-2026-49356 · CVE-2026-53550 · CVE-2026-53632 · CVE-2026-54466 · CVE-2026-55602 · CVE-2026-67313 · CVE-2026-67315 · CVE-2026-67317 · CVE-2026-67319 · CVE-2026-67321 · CVE-2026-69153 · CVE-2026-73086 · CVE-2026-73088 · CVE-2026-73089 · CVE-2026-73650

openSUSE-SU-2026:21176-1: Security update for python-pytest-html

CVE-2026-13311 · CVE-2026-53550

RHSA-2026:38236: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-5078 · CVE-2026-6733 · CVE-2026-6734 · CVE-2026-9678 · CVE-2026-9679 · CVE-2026-9697 · CVE-2026-11525 · CVE-2026-12151 · CVE-2026-53550 · CVE-2026-59869

RHSA-2026:37534: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-53550 · CVE-2026-59869

RHSA-2026:73987: Red Hat Security Advisory: RHOAI 3.3.7 - Red Hat OpenShift AI

CVE-2025-61726 · CVE-2025-66471 · CVE-2025-71408 · CVE-2026-1525 · CVE-2026-1526 · CVE-2026-1528 · CVE-2026-2229 · CVE-2026-5422 · CVE-2026-6321 · CVE-2026-6734 · CVE-2026-9697 · CVE-2026-11816 · CVE-2026-11822 · CVE-2026-11824 · CVE-2026-12151 · CVE-2026-13149 · CVE-2026-15154 · CVE-2026-15378 · CVE-2026-16221 · CVE-2026-16745 · CVE-2026-18951 · CVE-2026-23490 · CVE-2026-25681 · CVE-2026-27136 · CVE-2026-27489 · CVE-2026-27893 · CVE-2026-28356 · CVE-2026-28500 · CVE-2026-28684 · CVE-2026-31230 · CVE-2026-31958 · CVE-2026-32274 · CVE-2026-32286 · CVE-2026-32597 · CVE-2026-33186 · CVE-2026-33231 · CVE-2026-33245 · CVE-2026-33811 · CVE-2026-33814 · CVE-2026-33815 · CVE-2026-33816 · CVE-2026-34445 · CVE-2026-34986 · CVE-2026-34993 · CVE-2026-35397 · CVE-2026-35536 · CVE-2026-39821 · CVE-2026-39828 · CVE-2026-39829 · CVE-2026-39830 · CVE-2026-39831 · CVE-2026-39832 · CVE-2026-39835 · CVE-2026-40110 · CVE-2026-41242 · CVE-2026-42215 · CVE-2026-42294 · CVE-2026-42296 · CVE-2026-42297 · CVE-2026-42338 · CVE-2026-42502 · CVE-2026-42508 · CVE-2026-44240 · CVE-2026-44431 · CVE-2026-44432 · CVE-2026-44727 · CVE-2026-44843 · CVE-2026-45736 · CVE-2026-46595 · CVE-2026-48526 · CVE-2026-48586 · CVE-2026-48710 · CVE-2026-48746 · CVE-2026-48779 · CVE-2026-49855 · CVE-2026-53550 · CVE-2026-54058 · CVE-2026-54283 · CVE-2026-55969 · CVE-2026-56853 · CVE-2026-56858 · CVE-2026-56859 · CVE-2026-56860 · CVE-2026-56862 · CVE-2026-59197 · CVE-2026-59199 · CVE-2026-59200 · CVE-2026-59204 · CVE-2026-59205 · CVE-2026-59869 · CVE-2026-59873 · CVE-2026-59874 · CVE-2026-59884 · CVE-2026-59885 · CVE-2026-59886 · CVE-2026-62384 · CVE-2026-63310 · CVE-2026-64834 · CVE-2026-64835 · CVE-2026-66036 · CVE-2026-66037 · CVE-2026-66038 · CVE-2026-66040 · CVE-2026-67322 · CVE-2026-67323 · CVE-2026-67325 · CVE-2026-68770 · CVE-2026-69152 · CVE-2026-69192 · CVE-2026-69243 · CVE-2026-69244 · CVE-2026-71281 · CVE-2026-73089 · CVE-2026-73415 · CVE-2026-73417 · CVE-2026-73627 · CVE-2026-78682 · CVE-2026-79674 · CVE-2026-79675 · CVE-2026-80205 · CVE-2026-81722 · CVE-2026-81724 · CVE-2026-81727 · CVE-2026-84375 · CVE-2026-84445

openSUSE-SU-2026:12070-1: velociraptor-0.76.7.0.git145.b60ef1146-1.1 on GA media

CVE-2025-0914 · CVE-2026-12143 · CVE-2026-14257 · CVE-2026-17535 · CVE-2026-18348 · CVE-2026-18636 · CVE-2026-18638 · CVE-2026-18639 · CVE-2026-18860 · CVE-2026-27601 · CVE-2026-29074 · CVE-2026-41650 · CVE-2026-45623 · CVE-2026-49356 · CVE-2026-5329 · CVE-2026-53550 · CVE-2026-55602 · CVE-2026-56852 · CVE-2026-59869 · CVE-2026-6290 · CVE-2026-64951 · CVE-2026-64952 · CVE-2026-64954 · CVE-2026-65903 · CVE-2026-65912 · CVE-2026-65913 · CVE-2026-65914 · CVE-2026-67314 · CVE-2026-67320 · CVE-2026-6863 · CVE-2026-69152 · CVE-2026-69153 · CVE-2026-6948 · CVE-2026-73086 · CVE-2026-73646 · CVE-2026-73650 · CVE-2026-7572 · CVE-2026-7573 · CVE-2026-84369 · CVE-2026-84370

RHSA-2026:33866: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-13149 · CVE-2026-48619 · CVE-2026-48928 · CVE-2026-48930 · CVE-2026-48934 · CVE-2026-48935 · CVE-2026-48936 · CVE-2026-53550 · CVE-2026-59868 · CVE-2026-59870

RHSA-2026:60520: Red Hat Security Advisory: RHOAI 3.4.4 - Red Hat OpenShift AI

CVE-2025-66471 · CVE-2025-66626 · CVE-2025-71329 · CVE-2025-71330 · CVE-2026-0545 · CVE-2026-2614 · CVE-2026-5241 · CVE-2026-5422 · CVE-2026-6322 · CVE-2026-6734 · CVE-2026-8643 · CVE-2026-9697 · CVE-2026-12143 · CVE-2026-12151 · CVE-2026-12243 · CVE-2026-12481 · CVE-2026-13149 · CVE-2026-13311 · CVE-2026-13676 · CVE-2026-13717 · CVE-2026-14450 · CVE-2026-15154 · CVE-2026-15218 · CVE-2026-15378 · CVE-2026-15467 · CVE-2026-15581 · CVE-2026-16745 · CVE-2026-18608 · CVE-2026-18611 · CVE-2026-18617 · CVE-2026-18620 · CVE-2026-18621 · CVE-2026-18948 · CVE-2026-18951 · CVE-2026-18982 · CVE-2026-25681 · CVE-2026-27136 · CVE-2026-32280 · CVE-2026-32283 · CVE-2026-33079 · CVE-2026-33245 · CVE-2026-33811 · CVE-2026-33814 · CVE-2026-34993 · CVE-2026-35397 · CVE-2026-39820 · CVE-2026-39821 · CVE-2026-39828 · CVE-2026-39829 · CVE-2026-39830 · CVE-2026-39831 · CVE-2026-39835 · CVE-2026-40171 · CVE-2026-41672 · CVE-2026-41673 · CVE-2026-41675 · CVE-2026-42211 · CVE-2026-42215 · CVE-2026-42264 · CVE-2026-42266 · CVE-2026-42284 · CVE-2026-42305 · CVE-2026-42311 · CVE-2026-42338 · CVE-2026-42342 · CVE-2026-42499 · CVE-2026-42502 · CVE-2026-42508 · CVE-2026-42557 · CVE-2026-44017 · CVE-2026-44018 · CVE-2026-44020 · CVE-2026-44240 · CVE-2026-44244 · CVE-2026-44289 · CVE-2026-44290 · CVE-2026-44291 · CVE-2026-44292 · CVE-2026-44293 · CVE-2026-44486 · CVE-2026-44487 · CVE-2026-44488 · CVE-2026-44492 · CVE-2026-44494 · CVE-2026-44495 · CVE-2026-44496 · CVE-2026-44513 · CVE-2026-44660 · CVE-2026-44705 · CVE-2026-44724 · CVE-2026-44727 · CVE-2026-44827 · CVE-2026-44843 · CVE-2026-45292 · CVE-2026-45623 · CVE-2026-45736 · CVE-2026-45740 · CVE-2026-45804 · CVE-2026-46595 · CVE-2026-46597 · CVE-2026-46625 · CVE-2026-47214 · CVE-2026-48526 · CVE-2026-48710 · CVE-2026-48712 · CVE-2026-48779 · CVE-2026-48801 · CVE-2026-49476 · CVE-2026-49477 · CVE-2026-49851 · CVE-2026-49978 · CVE-2026-50193 · CVE-2026-53550 · CVE-2026-54058 · CVE-2026-54060 · CVE-2026-54283 · CVE-2026-54293 · CVE-2026-55379 · CVE-2026-55380 · CVE-2026-55685 · CVE-2026-56121 · CVE-2026-56208 · CVE-2026-56209 · CVE-2026-56210 · CVE-2026-56211 · CVE-2026-58049 · CVE-2026-59197 · CVE-2026-59199 · CVE-2026-59200 · CVE-2026-59204 · CVE-2026-59205 · CVE-2026-59869 · CVE-2026-59873 · CVE-2026-59874 · CVE-2026-59884 · CVE-2026-59885 · CVE-2026-59886 · CVE-2026-64835 · CVE-2026-64849 · CVE-2026-69152 · CVE-2026-69192 · CVE-2026-69243 · CVE-2026-69244

openSUSE-SU-2026:11148-1: python311-pydata-sphinx-theme-0.19.0-1.1 on GA media

CVE-2026-53550

RHSA-2026:65126: Red Hat Security Advisory: RHOAI 2.25.11 - Red Hat OpenShift AI

CVE-2025-61729 · CVE-2025-67030 · CVE-2026-4926 · CVE-2026-6734 · CVE-2026-9563 · CVE-2026-9697 · CVE-2026-12151 · CVE-2026-12243 · CVE-2026-13149 · CVE-2026-15075 · CVE-2026-15154 · CVE-2026-15378 · CVE-2026-15581 · CVE-2026-16745 · CVE-2026-18608 · CVE-2026-18611 · CVE-2026-18617 · CVE-2026-18620 · CVE-2026-18621 · CVE-2026-25681 · CVE-2026-26996 · CVE-2026-27136 · CVE-2026-27904 · CVE-2026-30922 · CVE-2026-32283 · CVE-2026-33231 · CVE-2026-33810 · CVE-2026-33811 · CVE-2026-33814 · CVE-2026-33870 · CVE-2026-33871 · CVE-2026-34445 · CVE-2026-35536 · CVE-2026-39821 · CVE-2026-39829 · CVE-2026-39835 · CVE-2026-40171 · CVE-2026-40192 · CVE-2026-40895 · CVE-2026-41178 · CVE-2026-42027 · CVE-2026-42215 · CVE-2026-42284 · CVE-2026-42338 · CVE-2026-42502 · CVE-2026-42508 · CVE-2026-42578 · CVE-2026-42579 · CVE-2026-42581 · CVE-2026-42583 · CVE-2026-42584 · CVE-2026-42587 · CVE-2026-44240 · CVE-2026-44244 · CVE-2026-44249 · CVE-2026-44431 · CVE-2026-44893 · CVE-2026-45112 · CVE-2026-45416 · CVE-2026-45623 · CVE-2026-45674 · CVE-2026-45736 · CVE-2026-45819 · CVE-2026-47691 · CVE-2026-48043 · CVE-2026-48059 · CVE-2026-48586 · CVE-2026-48779 · CVE-2026-49978 · CVE-2026-50010 · CVE-2026-50193 · CVE-2026-53550 · CVE-2026-54293 · CVE-2026-54512 · CVE-2026-55685 · CVE-2026-55831 · CVE-2026-55833 · CVE-2026-55851 · CVE-2026-56745 · CVE-2026-56746 · CVE-2026-56819 · CVE-2026-56853 · CVE-2026-56858 · CVE-2026-56859 · CVE-2026-56860 · CVE-2026-56862 · CVE-2026-59869 · CVE-2026-59873 · CVE-2026-59874 · CVE-2026-59885 · CVE-2026-59899 · CVE-2026-66036 · CVE-2026-66039 · CVE-2026-67313 · CVE-2026-67320 · CVE-2026-67322 · CVE-2026-67323 · CVE-2026-67324 · CVE-2026-67325 · CVE-2026-68494 · CVE-2026-69112 · CVE-2026-69152 · CVE-2026-69192 · CVE-2026-69243 · CVE-2026-69244 · CVE-2026-71281 · CVE-2026-73088 · CVE-2026-73089 · CVE-2026-73415 · CVE-2026-73417 · CVE-2026-73566 · CVE-2026-73622 · CVE-2026-73623 · CVE-2026-73624 · CVE-2026-73625 · CVE-2026-73627 · CVE-2026-73643

WID-SEC-W-2026-2618: IBM App Connect Enterprise: Mehrere Schwachstellen

CVE-2026-11525 · CVE-2026-12151 · CVE-2026-13676 · CVE-2026-53550 · CVE-2026-54285 · CVE-2026-59869 · CVE-2026-59877 · CVE-2026-6733 · CVE-2026-6734 · CVE-2026-9675 · CVE-2026-9678 · CVE-2026-9679 · CVE-2026-9697

RHSA-2026:56431: Red Hat Security Advisory: Red Hat OpenShift Data Foundation 4.18.27 security, enhancement & bug fix update

CVE-2025-61726 · CVE-2025-61729 · CVE-2025-64718 · CVE-2025-68470 · CVE-2026-1525 · CVE-2026-1526 · CVE-2026-1527 · CVE-2026-2229 · CVE-2026-6321 · CVE-2026-6322 · CVE-2026-6733 · CVE-2026-6734 · CVE-2026-9358 · CVE-2026-9679 · CVE-2026-9697 · CVE-2026-11525 · CVE-2026-12143 · CVE-2026-12151 · CVE-2026-13149 · CVE-2026-13676 · CVE-2026-22036 · CVE-2026-25645 · CVE-2026-33186 · CVE-2026-33349 · CVE-2026-33671 · CVE-2026-33672 · CVE-2026-33750 · CVE-2026-34043 · CVE-2026-34986 · CVE-2026-35469 · CVE-2026-39821 · CVE-2026-40181 · CVE-2026-41305 · CVE-2026-41650 · CVE-2026-41907 · CVE-2026-42342 · CVE-2026-45409 · CVE-2026-45736 · CVE-2026-48779 · CVE-2026-48801 · CVE-2026-53550 · CVE-2026-59869

Source published
Jun 22, 2026, 2:59:14 PM (timezone not stated)
Source modified
Jun 29, 2026, 3:06:58 PM (timezone not stated)
Observed here
7 Nov 2026 11:37:46 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.

EUVD CVSS 3.1 · 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

nvd · CVE-2026-53550

Published

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.

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Analyzed

Weakness classifications: CWE-407

Original publisher date fields

published: 2026-06-22T16:16:38.447

lastModified: 2026-10-25T23:10:00.167

1 source CPE criteria · context only
  • cpe:2.3:a:nodeca:js-yaml:*:*:*:*:*:node.js:*:*

The original JSON retains the logical configuration operators, exclusions and version bounds.

Source published
22 Jun 2026 16:16:38 UTC
Source modified
25 Oct 2026 23:10:00 UTC
Observed here
27 Oct 2026 14:13:22 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 3.1 · [email protected] · Secondary · 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

osv · GHSA-h67p-54hq-rp68

Published

### Summary 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. ### Details The issue is in merge handling inside `lib/loader.js`: - `storeMappingPair(...)` iterates every element of a merge sequence when key tag is `tag:yaml.org,2002:merge`. - For each element, it calls `mergeMappings(...)`. - `mergeMappings(...)` computes `Object.keys(source)` and performs `_hasOwnProperty.call(destination, key)` checks for each key. When input is of the form: a: &a {k0:0, k1:0, ..., kK:0} b: {<<: [*a, *a, *a, ... repeated M times ...]} all *a entries refer to the same anchored object. After the first merge, subsequent merges are semantically no-ops, but the parser still reprocesses all keys each time. Resulting work is O(K * M), while input size is O(K + M), giving quadratic scaling as payload grows. Relevant code path: lib/loader.js in storeMappingPair(...) merge branch (keyTag === 'tag:yaml.org,2002:merge') lib/loader.js mergeMappings(...) ### Root cause File: lib/loader.js Function: storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) Lines: ~359-366 if (keyTag === 'tag:yaml.org,2002:merge') { if (Array.isArray(valueNode)) { for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { mergeMappings(state, _result, valueNode[index], overridableKeys); } } else { mergeMappings(state, _result, valueNode, overridableKeys); } } When the merge value is a sequence (YAML 1.1 <<: [ *a, *a, ... ]), each element is handed to mergeMappings() without deduplication. mergeMappings() then does sourceKeys = Object.keys(source); for (index = 0; index < sourceKeys.length; index += 1) { key = sourceKeys[index]; if (!_hasOwnProperty.call(destination, key)) { setProperty(destination, key, source[key]); overridableKeys[key] = true; } } Every alias reference in the sequence resolves (by design) to the SAME object via state.anchorMap. After the first merge, every subsequent merge of that same reference is a pure no-op semantically, but still performs: * one Object.keys(source) call (O(K)) * K _hasOwnProperty.call checks on the destination Total: M * K hasOwnProperty checks + M Object.keys allocations, while the final object and all observable side effects are identical to a single merge. YAML semantics for `<<:` are idempotent and commutative over duplicate sources, so collapsing duplicates preserves behavior exactly; this isn't a spec trade-off. ### PoC Environment: js-yaml version: 4.1.1 Node.js: v24.5.0 Platform: arm64 macOS (reproduced consistently) Reproduction script: Create many keys in one anchored map (&a). Merge that same alias repeatedly via <<: [*a, *a, ...]. Measure parse time and compare with control payload using single merge (<<: *a). Observed repeated runs (same machine): K=M=1000, input 9,909 bytes: ~33–36 ms K=M=2000, input 20,909 bytes: ~121–123 ms K=M=4000, input 42,909 bytes: ~524–537 ms K=M=6000, input 64,909 bytes: ~1,608–1,829 ms K=M=8000, input 86,909 bytes: ~3,395–3,565 ms Control (single merge, similar key counts): K=2000: ~1–2 ms K=4000: ~3 ms K=8000: ~5 ms Also verified: repeated-merge output equals single-merge output (same key count and same JSON), confirming excess time is redundant computation. ### Impact This is a denial-of-service vulnerability (CPU exhaustion / algorithmic complexity). Any service parsing untrusted YAML with js-yaml can be impacted, including API backends, CI tools, config processors, and automation services. An attacker can submit crafted YAML to significantly increase CPU time and reduce availability. ### Suggested fix: Dedupe the merge source list by reference before invoking mergeMappings. Any of the following are minimal and preserve YAML 1.1 merge semantics: dedupe in storeMappingPair: if (keyTag === 'tag:yaml.org,2002:merge') { if (Array.isArray(valueNode)) { var seen = new Set(); for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { var src = valueNode[index]; if (seen.has(src)) continue; // idempotent; skip redundant alias seen.add(src); mergeMappings(state, _result, src, overridableKeys); } } else { mergeMappings(state, _result, valueNode, overridableKeys); } }

Source published
15 Jun 2026 17:15:07 UTC
Source modified
10 Sep 2026 03:50:49 UTC
Observed here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Publisher rating · MODERATE

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 7 Nov 20:22 UTC · 275 of 275 readable · 274 fully read · documentation 460/469 current