Skip to main content

toml-node EUVDEUVD-2026-107555

| CVE-2026-114143 HIGH
Inefficient Algorithmic Complexity (CWE-407)
2026-10-21 GitHub_M GHSA-9j65-hcg3-gc64
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify endpoint parsing untrusted TOML
  2. Delivery
    Submit document with very long dotted keys
  3. Exploit
    Trigger quadratic path slice/rejoin in compiler
  4. Execution
    Block event loop and exhaust memory
  5. Impact
    Process 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

toml-node < 5.0.1

Affected Packages

euvd toml_node fix: 5.0.1

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

Vendor (GitHub_M) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 22:03 EUVD
CVE Published
Oct 21, 2026 - 20:31 cve.org
HIGH 8.7

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
npm TOML parser with moderate adoption, not a universal dependency
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy