js-yaml: Uncontrolled Resource Consumption
CVE-2026-84375 is a high-severity uncontrolled resource consumption vulnerability in js-yaml from Nodeca, with a CVSS 3.1 base score of 7.5 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. Affected js-yaml versions: >= 3.0.0, < 3.15.2; >= 4.0.0, < 4.3.2; >= 5.0.0, < 5.4.1. The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 0.54% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Check which version of js-yaml you run against the affected versions below, and install the vendor's latest release.
- Read the advisory on github.com for workarounds and exact fixed builds.
- Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Nodeca | js-yaml | >= 3.0.0, < 3.15.2; >= 4.0.0, < 4.3.2; >= 5.0.0, < 5.4.1 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- NoneNo account or login is needed.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- NoneNo data is disclosed.
- Integrity
- NoneNothing can be modified.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H. Scored by CNA (github.com).
Official description
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.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Uncontrolled Resource Consumption
The product does not properly control the allocation and maintenance of a limited resource.
How developers prevent this class of flaw
- Ensure that protocols have specific limits of scale placed on them.
- Ensure that all failures in resource allocation place the system into a safe posture.
More Uncontrolled Resource Consumption vulnerabilities (CWE-400)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- github.com/nodeca/js-yaml/commit/3485bc06ff8a0251505f44a00414d90df2466639
- github.com/nodeca/js-yaml/commit/6a8e05f9a485188ed730ac81e81ae221352ef480
- github.com/nodeca/js-yaml/commit/d90b6612a5a84385bdcb556c44578eac76dc0f6b
- github.com/nodeca/js-yaml/pull/797
- github.com/nodeca/js-yaml/releases/tag/3.15.2
- github.com/nodeca/js-yaml/releases/tag/4.3.2
- github.com/nodeca/js-yaml/releases/tag/5.4.1
Other vulnerabilities in js-yaml
- 7.5 High severity
- 7.5 High severity
- 7.5 High severity
- 7.5 High severity
Recent Uncontrolled Resource Consumption vulnerabilities
- 7.5 High severity
- 7.5 High severity
- 8.7 High severity
- 8.7 High severity
- 8.7 High severity
- 8.7 High severity
Spotted an error? Tell us.