CVE-2026-33532: CWE-674: Uncontrolled Recursion in eemeli yaml
CVE-2026-33532 is a medium severity vulnerability in the eemeli yaml JavaScript library versions prior to 1. 10. 3 and 2. 8. 3. It arises from uncontrolled recursion during the node resolution/composition phase of YAML parsing, which can cause a stack overflow and trigger a RangeError. An attacker supplying maliciously crafted YAML input with deeply nested flow sequences (~2–10 KB) can exhaust the call stack, causing application crashes or denial of service. This error is not a standard YAMLParseError, potentially bypassing error handling in some applications. The vulnerability affects all three public parsing APIs and is environment-dependent based on Node. js stack size and version.
AI Analysis
Technical Summary
The vulnerability CVE-2026-33532 affects the eemeli yaml JavaScript library, specifically versions 1.x prior to 1.10.3 and 2.x prior to 2.8.3. The root cause is uncontrolled recursion in the node resolution and composition phase of YAML parsing, where recursive function calls lack a depth limit. This leads to a stack overflow when parsing YAML documents with deeply nested flow sequences, which require only two bytes per nesting level (one '[' and one ']'). Approximately 1,000 to 5,000 levels of nesting can exhaust the Node.js call stack, depending on environment factors such as Node.js version and stack size. The resulting error is a RangeError: Maximum call stack size exceeded, which differs from typical YAMLParseErrors, potentially causing unhandled exceptions in applications that only catch YAML-specific errors. The parser's CST phase is unaffected as it uses an iterative stack-based approach. All three public APIs—YAML.parse(), YAML.parseDocument(), and YAML.parseAllDocuments()—are vulnerable. The vulnerability can be triggered remotely if an attacker can supply YAML input to the application, leading to denial of service by crashing the Node.js process or failing requests. The issue is patched in versions 1.10.3 and 2.8.3 by introducing recursion depth limits or alternative parsing strategies to prevent stack exhaustion.
Potential Impact
This vulnerability primarily impacts the availability of applications using vulnerable versions of the eemeli yaml library. An attacker able to supply crafted YAML input can cause the Node.js process to crash or requests to fail, resulting in denial of service. This can disrupt services, degrade user experience, and potentially cause downtime in critical systems relying on YAML parsing for configuration, data interchange, or API inputs. Since the error is a RangeError and not a YAMLParseError, some applications may not handle it gracefully, increasing the likelihood of crashes. The vulnerability does not affect confidentiality or integrity directly but can be leveraged to disrupt operations. Organizations using the affected library in web services, cloud applications, or internal tools are at risk. The ease of exploitation is moderate as it requires the ability to supply YAML input, but the payload size is small (~2–10 KB), and no authentication or user interaction is needed. The scope is broad given the popularity of the yaml library in JavaScript ecosystems, especially in Node.js environments.
Mitigation Recommendations
To mitigate this vulnerability, organizations should upgrade all instances of the eemeli yaml library to version 1.10.3 or 2.8.3 or later, where the recursion depth issue is patched. If immediate upgrade is not feasible, implement input validation to detect and reject YAML documents with excessively deep nesting, particularly in flow sequences. Employ runtime monitoring and error handling that catches RangeError exceptions to prevent process crashes and enable graceful degradation or error reporting. Consider sandboxing YAML parsing operations or running them in isolated processes to contain potential crashes. Additionally, review application logic to ensure robust exception handling beyond YAMLParseErrors, covering unexpected exceptions like RangeError. For critical systems, implement rate limiting or request throttling on endpoints accepting YAML input to reduce the risk of denial of service. Finally, maintain awareness of Node.js environment configurations, as stack size and version influence exploitability; tuning stack size parameters may provide additional resilience.
Affected Countries
United States, Germany, United Kingdom, France, Japan, South Korea, India, Canada, Australia, Netherlands
CVE-2026-33532: CWE-674: Uncontrolled Recursion in eemeli yaml
Description
CVE-2026-33532 is a medium severity vulnerability in the eemeli yaml JavaScript library versions prior to 1. 10. 3 and 2. 8. 3. It arises from uncontrolled recursion during the node resolution/composition phase of YAML parsing, which can cause a stack overflow and trigger a RangeError. An attacker supplying maliciously crafted YAML input with deeply nested flow sequences (~2–10 KB) can exhaust the call stack, causing application crashes or denial of service. This error is not a standard YAMLParseError, potentially bypassing error handling in some applications. The vulnerability affects all three public parsing APIs and is environment-dependent based on Node. js stack size and version.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability CVE-2026-33532 affects the eemeli yaml JavaScript library, specifically versions 1.x prior to 1.10.3 and 2.x prior to 2.8.3. The root cause is uncontrolled recursion in the node resolution and composition phase of YAML parsing, where recursive function calls lack a depth limit. This leads to a stack overflow when parsing YAML documents with deeply nested flow sequences, which require only two bytes per nesting level (one '[' and one ']'). Approximately 1,000 to 5,000 levels of nesting can exhaust the Node.js call stack, depending on environment factors such as Node.js version and stack size. The resulting error is a RangeError: Maximum call stack size exceeded, which differs from typical YAMLParseErrors, potentially causing unhandled exceptions in applications that only catch YAML-specific errors. The parser's CST phase is unaffected as it uses an iterative stack-based approach. All three public APIs—YAML.parse(), YAML.parseDocument(), and YAML.parseAllDocuments()—are vulnerable. The vulnerability can be triggered remotely if an attacker can supply YAML input to the application, leading to denial of service by crashing the Node.js process or failing requests. The issue is patched in versions 1.10.3 and 2.8.3 by introducing recursion depth limits or alternative parsing strategies to prevent stack exhaustion.
Potential Impact
This vulnerability primarily impacts the availability of applications using vulnerable versions of the eemeli yaml library. An attacker able to supply crafted YAML input can cause the Node.js process to crash or requests to fail, resulting in denial of service. This can disrupt services, degrade user experience, and potentially cause downtime in critical systems relying on YAML parsing for configuration, data interchange, or API inputs. Since the error is a RangeError and not a YAMLParseError, some applications may not handle it gracefully, increasing the likelihood of crashes. The vulnerability does not affect confidentiality or integrity directly but can be leveraged to disrupt operations. Organizations using the affected library in web services, cloud applications, or internal tools are at risk. The ease of exploitation is moderate as it requires the ability to supply YAML input, but the payload size is small (~2–10 KB), and no authentication or user interaction is needed. The scope is broad given the popularity of the yaml library in JavaScript ecosystems, especially in Node.js environments.
Mitigation Recommendations
To mitigate this vulnerability, organizations should upgrade all instances of the eemeli yaml library to version 1.10.3 or 2.8.3 or later, where the recursion depth issue is patched. If immediate upgrade is not feasible, implement input validation to detect and reject YAML documents with excessively deep nesting, particularly in flow sequences. Employ runtime monitoring and error handling that catches RangeError exceptions to prevent process crashes and enable graceful degradation or error reporting. Consider sandboxing YAML parsing operations or running them in isolated processes to contain potential crashes. Additionally, review application logic to ensure robust exception handling beyond YAMLParseErrors, covering unexpected exceptions like RangeError. For critical systems, implement rate limiting or request throttling on endpoints accepting YAML input to reduce the risk of denial of service. Finally, maintain awareness of Node.js environment configurations, as stack size and version influence exploitability; tuning stack size parameters may provide additional resilience.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-03-20T18:05:11.830Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 69c590393c064ed76fc7fe87
Added to database: 3/26/2026, 7:59:53 PM
Last enriched: 3/26/2026, 8:14:45 PM
Last updated: 3/26/2026, 9:33:47 PM
Views: 4
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.