Description
js-toml is a TOML parser for JavaScript. Prior to 1.1.3, load() does not bound nesting or dotted-key depth in the recursive parser at src/load/parser.ts or the interpreter at src/load/interpreter.ts, so deeply nested arrays, deeply nested inline tables, or long dotted keys can exhaust the V8 call stack and throw a raw RangeError instead of the documented SyntaxParseError. Applications that parse attacker-controlled TOML and handle only SyntaxParseError can rethrow the unexpected exception, which can terminate a worker or process and cause denial of service. The exception is synchronous and catchable by consumers that handle all exceptions, and the issue does not affect confidentiality or integrity. This issue is fixed in version 1.1.3.
Published: 2026-09-22
Score: 5.3 Medium
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

js‑toml contains an unbounded recursive parser that permits deeply nested arrays, inline tables, or exceptionally long dotted keys. When such input is supplied to the load function, the V8 engine exhausts the call stack and throws a RangeError instead of the documented SyntaxParseError. This flaw matches CWE‑674 and can terminate the worker process or entire application if the exception propagates, creating a denial of service without affecting confidentiality or integrity.

Affected Systems

All versions of sunnyadn js‑toml prior to 1.1.3 are affected. Any JavaScript or Node.js application that imports this parser and processes attacker‑controlled TOML—such as configuration files, user uploads, or network‑received payloads—must ensure the vulnerable load function is not used or is patched. The error originates in src/load/parser.ts and src/load/interpreter.ts and has been addressed in the 1.1.3 release.

Risk and Exploitability

The CVSS score of 5.3 labels the impact as medium, and no EPSS data is currently available. Although the vulnerability is not listed in CISA’s KEV catalog, its exploitation is straightforward: an attacker who can supply malicious TOML to the parser can trigger a stack exhaustion synchronously. The exception is catchable, but applications that only handle SyntaxParseError allow the RangeError to propagate and crash the process. Remediation depends on applying the fix or implementing robust error handling to mitigate the denial of service potential.

Generated by OpenCVE AI on September 22, 2026 at 21:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade js‑toml to version 1.1.3 or later, which bounds recursion and returns SyntaxParseError for malformed input. This patch removes the unbounded recursion flaw identified as CWE‑674.
  • Modify application code to catch all exceptions, not only SyntaxParseError, so that a RangeError does not terminate the worker or process. This precaution prevents crash propagation even if older versions are in use.
  • Add explicit bounds on TOML parsing, such as a maximum nesting depth or key length limit, to guard against similar recursion‑related weaknesses (CWE‑674). Implement these checks at the application layer or use a wrapper around the parser to enforce limits whenever possible.

Generated by OpenCVE AI on September 22, 2026 at 21:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 22 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Sunnyadn
Sunnyadn js-toml
Vendors & Products Sunnyadn
Sunnyadn js-toml

Tue, 22 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Description js-toml is a TOML parser for JavaScript. Prior to 1.1.3, load() does not bound nesting or dotted-key depth in the recursive parser at src/load/parser.ts or the interpreter at src/load/interpreter.ts, so deeply nested arrays, deeply nested inline tables, or long dotted keys can exhaust the V8 call stack and throw a raw RangeError instead of the documented SyntaxParseError. Applications that parse attacker-controlled TOML and handle only SyntaxParseError can rethrow the unexpected exception, which can terminate a worker or process and cause denial of service. The exception is synchronous and catchable by consumers that handle all exceptions, and the issue does not affect confidentiality or integrity. This issue is fixed in version 1.1.3.
Title js-toml: Uncontrolled recursion in `load()` causes `RangeError` (stack exhaustion) on deeply nested input
Weaknesses CWE-674
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}


Subscriptions

Sunnyadn Js-toml
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-22T19:00:19.734Z

Reserved: 2026-07-16T17:39:30.171Z

Link: CVE-2026-63386

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-22T19:16:44.050

Modified: 2026-09-22T19:16:44.050

Link: CVE-2026-63386

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T21:45:05Z

Weaknesses