CVE-2026-59869
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-59869 is a denial-of-service vulnerability in js-yaml, a widely used JavaScript YAML parser and dumper for Node.js, caused by quadratic CPU time consumption when parsing specially crafted YAML documents. The vulnerability affects js-yaml versions 3.0.0 through 3.14.x and 4.0.0 through 4.2.x. It was published on July 8, 2026, with patches released in versions 3.15.0 and 4.3.0. The CVSS v3.1 base score is 7.5 (High) (GitHub Advisory, Feedly).

Technical details

The root cause is an inefficient algorithmic complexity flaw (CWE-407, CWE-400) in the YAML merge key (<<) processing logic. When a YAML document contains a chain of mappings where each mapping merges the previous one (e.g., a1 merges a0, a2 merges a1, etc.), the loader must enumerate all inherited keys for each new mapping, resulting in O(N²) CPU work for O(N) input size. With approximately N=4,000 chained mappings (document size under 100KB), parsing delays exceed one second. The fix introduces a maxTotalMergeKeys loader option (defaulting to 10,000) that caps the total number of keys processed by merge operations across a single parse call, throwing a YAMLException if the limit is exceeded (GitHub Advisory, Patch v3, Patch v4).

Impact

Successful exploitation causes excessive CPU consumption on the server parsing the malicious YAML document, leading to denial of service — rendering the affected application unresponsive or unavailable. There is no impact on confidentiality or data integrity; the attack is purely an availability concern. Any application or service that accepts and parses user-supplied YAML using a vulnerable version of js-yaml is at risk, including downstream products such as IBM Aspera Faspex (GitHub Advisory, IBM Advisory).

Exploitability

A proof-of-concept script is publicly available in the GitHub security advisory, demonstrating the DoS behavior locally by calling load(source, { schema: YAML11_SCHEMA }) on a crafted merge-key chain. However, this PoC is classified as a bug illustration rather than a weaponized exploit, as it does not include mechanisms to target real deployments. No in-the-wild exploitation has been confirmed, no threat actor attribution exists, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.0035, indicating low probability of near-term exploitation (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify target: Locate an application or API endpoint that accepts user-supplied YAML input and processes it using a vulnerable version of js-yaml (3.0.0–3.14.x or 4.0.0–4.2.x).
  2. Craft malicious YAML: Construct a YAML document with a chain of N mappings (e.g., N ≥ 4,000) where each mapping uses a merge key (<<) to inherit from the previous one:
a0: &a0 { k0: 0 }
a1: &a1 { <<: *a0, k1: 1 }
a2: &a2 { <<: *a1, k2: 2 }
...
aN: &aN { <<: *a(N-1), kN: N }
b: *aN
  1. Submit payload: Send the crafted YAML document to the target endpoint (e.g., via HTTP POST, file upload, or configuration input).
  2. Trigger DoS: The parser enters O(N²) processing, consuming excessive CPU. At N=4,000, parsing takes over 1 second for a sub-100KB document; larger N values cause proportionally greater delays, potentially hanging or crashing the service (GitHub Advisory).

Indicators of compromise

  • Logs: Sudden spike in CPU usage correlated with YAML parsing operations; application logs showing YAMLException: merge keys exceeded maxTotalMergeKeys errors (if partially patched or rate-limited).
  • Network: Unusually large or structured YAML payloads submitted to API endpoints or file upload interfaces, particularly containing repeated <<: merge key patterns.
  • Process: Node.js process consuming near-100% CPU for extended periods without corresponding high-throughput legitimate workload; application timeouts or unresponsiveness following receipt of a specific YAML document.
  • File System: Suspicious YAML files stored in upload directories containing deeply chained anchor/alias merge structures (&aN, *aN, <<: patterns repeated hundreds or thousands of times).

Mitigation and workarounds

The primary remediation is to upgrade js-yaml to version 3.15.0 (for the 3.x branch) or 4.3.0 (for the 4.x branch), both of which introduce the maxTotalMergeKeys option (default: 10,000) to cap merge key processing (Release 3.15.0, Release 4.3.0). If immediate patching is not possible, implement input validation or size limits on YAML documents before parsing, and apply rate limiting on endpoints that accept YAML input. Downstream products such as IBM Aspera Faspex should be updated per vendor guidance (IBM Advisory).

Community reactions

IBM issued a security bulletin addressing CVE-2026-59869 as part of multiple vulnerabilities affecting IBM Aspera Faspex, indicating the vulnerability's reach into enterprise software supply chains (IBM Advisory). Red Hat issued multiple security advisories (RHSA-2026:37577, RHSA-2026:38304, RHSA-2026:38187) addressing the vulnerability in Red Hat Hardened Images, reflecting broad ecosystem impact. Snyk also incorporated detection for this CVE in its CLI tooling. The vulnerability was credited to researcher mazze93 in the GitHub advisory (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-77415CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77414CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77413CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-63421HIGH7.5
  • JavaScript logoJavaScript
  • @keystone-6/core
NoYesAug 21, 2026
CVE-2026-53509MEDIUM5.7
  • JavaScript logoJavaScript
  • @aborruso/ckan-mcp-server
NoYesAug 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management