CVE-2026-33532: eemeli yaml · Uncontrolled Recursion
Affects eemeli yamlSource CVE Database V5
Not known to be exploited · CVSS 4.3 Medium : upgrade to 2.8.3 or 1.10.3 when convenient.
Data as of 30 Oct 2026, 11:52 UTC
- EPSS
- 0.4% chance of exploitation in 30 days – higher than 41% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 2.8.3, 1.10.3
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:LExploitation evidence
Disclosed: evidence found.
CVE published 26 Mar 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: evidence found.
Public exploit code: GitHub proofs of concept
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), GitHub proofs of concept, the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade eemeli yaml to 2.8.3 or 1.10.3.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| eemeliyaml | Affected
| Fixed in
|
| eemeliyaml | Affected
| Fixed in
|
npmyamlpkg:npm/yamlOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
This vulnerability is fixed in eemeli yaml versions 1.10.3 and 2.8.3. Users should upgrade to these or later versions to remediate the issue. There is no indication of alternative mitigations or that the issue is already mitigated without patching. Patch status is confirmed by the vendor's versioning information.
Description
`yaml` is a YAML parser and serialiser for JavaScript. Parsing a YAML document with a version of `yaml` on the 1.x branch prior to 1.10.3 or on the 2.x branch prior to 2.8.3 may throw a RangeError due to a stack overflow. The node resolution/composition phase uses recursive function calls without a depth bound. An attacker who can supply YAML for parsing can trigger a `RangeError: Maximum call stack size exceeded` with a small payload (~2–10 KB). The `RangeError` is not a `YAMLParseError`, so applications that only catch YAML-specific errors will encounter an unexpected exception type. Depending on the host application's exception handling, this can fail requests or terminate the Node.js process. Flow sequences allow deep nesting with minimal bytes (2 bytes per level: one `[` and one `]`). On the default Node.js stack, approximately 1,000–5,000 levels of nesting (2–10 KB input) exhaust the call stack. The exact threshold is environment-dependent (Node.js version, stack size, call stack depth at invocation). Note: the library's `Parser` (CST phase) uses a stack-based iterative approach and is not affected. Only the compose/resolve phase uses actual call-stack recursion. All three public parsing APIs are affected: `YAML.parse()`, `YAML.parseDocument()`, and `YAML.parseAllDocuments()`. Versions 1.10.3 and 2.8.3 contain a patch.
References
- github.com/eemeli/yaml/security/advisories/GHSA-48c2-rrv3-qjmp (opens in a new tab)
- github.com/eemeli/yaml/commit/1e84ebbea7ec35011a4c61bbb820a529ee4f359b (opens in a new tab)
- github.com/eemeli/yaml/releases/tag/v1.10.3 (opens in a new tab)
- github.com/eemeli/yaml/releases/tag/v2.8.3 (opens in a new tab)