CVE-2026-114141
NoneCVSS
—
EPSS
0.5%
Published
Oct 21, 2026
CISA due date
—
Cloudanix analysis
A data-reading component used by many applications can be slowed dramatically or made unresponsive by certain specially crafted files, potentially disrupting services until the component is updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The addTableArray() function in lib/compiler.js performs a full rescan of assignedPaths and valueAssignments sets for every array-of-tables header without pruning distinct paths, resulting in quadratic synchronous CPU work that blocks the Node.js event loop.
Why it matters to the business
Services relying on the parser can experience sudden unavailability or degraded performance when processing untrusted TOML input, with rising exploit probability increasing exposure for applications handling configuration or data files.
How an attack unfolds
An attacker crafts a TOML document containing a large number of distinct [[array-of-tables]] headers and supplies it to toml.parse(); the quadratic bookkeeping scan consumes excessive CPU in a single synchronous operation, starving the event loop of other tasks until the parse completes or times out.
How to fix it
Upgrade toml-node to version 5.0.1 or later; after upgrade, validate that parsing performance remains linear for documents with many array-of-tables headers.
How to confirm the fix worked
Confirm the installed package version is at least 5.0.1; run a benchmark that parses a TOML file containing 10,000 distinct [[array-of-tables]] entries and verify completion time remains proportional to document size rather than quadratic.
Typical attack path
- Generate a TOML document with thousands of unique [[name]] array-of-tables headers
- Deliver the document to any endpoint or API that invokes toml.parse() on untrusted input
- Trigger the quadratic rescan path in addTableArray() to saturate a single thread and block the event loop
How to detect it
Review application and system logs for unusually long synchronous execution times or high CPU during TOML parsing calls; correlate with inbound requests that carry TOML content.
What your security team should do
- Immediately upgrade all instances of toml-node to 5.0.1
- Add dependency scanning rules to enforce the minimum fixed version in build pipelines
- Implement input size or complexity limits on TOML parsing operations until patches are deployed
- Monitor Node.js event-loop lag metrics for sudden spikes during configuration or data ingestion
The record
toml-node is a TOML parser for Node.js and the browser. Prior to 5.0.1, the toml.parse() compiler's addTableArray() function in lib/compiler.js rescans the complete assignedPaths and valueAssignments bookkeeping sets for every array-of-tables header. Distinct [[name]] paths are not pruned, so a document with many such headers causes quadratic synchronous work and can block the Node.js event loop, denying service to other operations in the process. This issue is fixed in version 5.0.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-62160 Daptin is a GraphQL/JSON-API headless CMS. CWE-407
- CVE-2026-87768 DateTime::Lite versions before 0.8.1 for Perl allow CPU exhaustion via a per-day loop… CWE-407
- CVE-2026-119196 pyasn1 is a generic ASN.1 library for Python. CWE-407
- CVE-2026-119194 pyasn1 is a generic ASN.1 library for Python. CWE-407
- CVE-2026-119195 pyasn1 is a generic ASN.1 library for Python. CWE-407
- CVE-2026-119197 pyasn1 is a generic ASN.1 library for Python. CWE-407
- CVE-2019-25781 Python-Markdown 3.0 through 3.11.2 contains an algorithmic complexity vulnerability in… CWE-407
- CVE-2026-118694 python-markdown2 through 2.5.5 contains a denial of service vulnerability that allows… CWE-407