Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint parsing untrusted TOML
-
DeliverySubmit document with very long dotted keys
-
ExploitTrigger quadratic path slice/rejoin in compiler
-
ExecutionBlock event loop and exhaust memory
-
ImpactProcess crash / denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
|
| Exploitation Conditions | Exploitation requires that the application call toml.parse() on attacker-controlled TOML input and run the parse on the Node.js event loop (the default synchronous usage). The attacker-controlled document must contain long dotted keys, table headers, array-of-tables headers, or inline-table keys whose segment counts drive the quadratic path processing in assign()/deepRef()/setNestedKey(). The maxDepth option does NOT limit key-segment count and therefore does not mitigate this; nesting-depth limits provide no protection. Limiting factors: the vulnerability is inert if TOML input is trusted or operator-supplied (e.g., static config files shipped by the deployer rather than received from users), and impact is confined to availability - there is no data exposure or code execution. Affected versions are all releases prior to 5.0.1 of binarymuse/toml-node. |
| Impact | This is a genuine but bounded availability risk, not a high-confidence critical priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) correctly characterizes an easily reachable, unauthenticated, no-interaction flaw, but the impact is strictly availability (VA:H; VC:N/VI:N - no confidentiality or integrity), consistent with the CWE-407 algorithmic-complexity (quadratic) root cause. The 8.7 score is inflated relative to real-world urgency because it reflects a single-vector DoS against a parsing library rather than code execution or data exposure. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no evidence of active exploitation - only a vendor fix (GHSA-9j65-hcg3-gc64, commit 609c873, release v5.0.1). A notable inconsistency: the input Tags include 'Information Disclosure', which contradicts the CVSS vector (VC:N) and the description - this is a denial-of-service, not a disclosure issue, and should be disregarded. Real-world risk is highest for Node.js services that parse attacker-supplied TOML on the main event loop; it is low where TOML input is trusted or operator-supplied. |
| Exploit ScenarioDerived | An attacker submits a crafted TOML document - through any endpoint or feature where a Node.js application parses untrusted TOML via toml.parse() - containing extremely long dotted keys or table/array-of-tables headers. The quadratic slice-and-rejoin work in lib/compiler.js stalls the event loop for seconds (degrading or hanging all concurrent requests) and, with sufficiently long paths, exhausts memory and crashes the process. No public exploit was identified at time of analysis, though the fix commit publicly reveals the vulnerable code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Denial of service in toml-node before 5.0.1 allows unauthenticated remote attackers to stall or crash Node.js and browser-based processes that call toml.parse() on attacker-supplied TOML containing long dotted keys, table headers, array-of-tables headers, or inline-table keys. Repeated slicing and rejoining of every path prefix in assign(), deepRef(), and setNestedKey() creates quadratic work that can block the Node.js event loop for several seconds, and sufficiently long paths can terminate the process through memory exhaustion. No public exploit code was identified at time of analysis; impact is confined to availability, with no confidentiality or integrity loss, and the maxDepth option does not mitigate the issue because it limits nesting depth rather than key-segment count.
RemediationAI
Upgrade to toml-node 5.0.1 or later, which is the vendor-released patch that replaces the quadratic path handling in lib/compiler.js with container-kind tracking (commit 609c873); see the vendor advisory at https://github.com/BinaryMuse/toml-node/security/advisories/GHSA-9j65-hcg3-gc64 and the v5.0.1 release at https://github.com/BinaryMuse/toml-node/releases/tag/v5.0.1. If immediate upgrade is not possible, do not call toml.parse() synchronously on untrusted TOML in latency-sensitive or single-threaded request paths; instead parse in a worker thread or separate process with time and memory limits, accepting the added operational overhead and the fact that this contains rather than eliminates the algorithmic cost. The maxDepth option is not a mitigation because it does not limit key-segment count; rejecting or length-capping dotted keys and table headers before parsing is a compensating control, but it may reject legitimate documents and requires careful tuning.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
toml-node is a TOML parser used by Node.js applications and browser bundles; its compiler walks parsed key paths to build nested tables. The root cause is CWE-407 inefficient algorithmic complexity: prior to 5.0.1, lib/compiler.js repeatedly called makeFullPath()/pathKey() on progressively longer slices of dotted keys, table headers, array-of-tables headers, and inline-table keys, producing quadratic string allocation and comparison work. Because toml.parse() runs synchronously on the Node.js event loop in default usage, a document with many key segments can monopolize the thread and, at larger sizes, exhaust memory. The 5.0.1 fix (commit 609c873) replaces the string-set path bookkeeping with WeakMap-based container-kind tagging, so table origins are tracked without re-slicing every prefix. The maxDepth option is not a defense because it constrains nesting depth, not the number of segments in a single key path.
Know when Node.js gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Untrusted TOML can be parsed remotely with no auth or interaction (AV:N/AC:L/PR:N/UI:N); impact is availability-only event-loop blocking and memory exhaustion, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
toml-node is a TOML parser for Node.js and the browser. Prior to 5.0.1, toml.parse() repeatedly slices and rejoins every path prefix in lib/compiler.js while processing long dotted keys, table headers, array-of-tables headers, and inline-table keys in assign(), deepRef(), and setNestedKey(). The resulting quadratic work can block the Node.js event loop for several seconds, and sufficiently long paths can terminate the process through memory exhaustion. The maxDepth option does not limit key-segment count and therefore does not mitigate this path. This issue is fixed in version 5.0.1.
Articles & Coverage 1
Technical POC Analysis
CWE-407 (Inefficient Algorithmic Complexity) - a quadratic-time (O(n²)) denial of service in the TOML compiler of the npm package toml (repo BinaryMuse/toml-node).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
toml-node releases prior to 5.0.1 contain a denial-of-service flaw that lets a crafted TOML document stall or crash Node.js and browser processes, directly threatening the availability of any service, build pipeline, or client application that parses untrusted TOML. A single malicious document can block the event loop for seconds or exhaust memory, so product and platform owners should treat this as a service-disruption and reliability risk rather than a data-breach risk, since there is no confidentiality or integrity exposure.
No vendor-released patch identified at time of analysis; interim mitigations: enforce strict TOML document-size and key-segment-count limits before calling toml.parse(), reject oversized requests at the edge or reverse proxy, run parsing in worker threads or separate processes with memory caps and timeouts, avoid parsing untrusted TOML in latency-critical request paths, and upgrade to toml-node 5.0.1 or later as soon as it is available in your registry.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
EUVD-2026-107555
GHSA-9j65-hcg3-gc64
NVD
CVE.org
EPSS
VulDB
Exploit-DB