Skip to main content

toml-node EUVDEUVD-2026-70738

| CVE-2026-63376 HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-09-03 GitHub_M GHSA-v5mp-jgw5-2x6j
High
Disputed · 8.2 Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted TOML document to application ingestion endpoint
  2. Delivery
    Compiler duplicate-key guard desynchronizes on comma vs. dot path format
  3. Exploit
    __proto__ traversal through scalar value reaches Object.prototype
  4. Execution
    Attacker-controlled key-value pairs written to Object.prototype process-wide
  5. Persist
    Application gadget chain triggered via polluted prototype property
  6. Impact
    Denial of service, authorization bypass, or code execution

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that attacker-controlled TOML content be passed to toml.parse(). Applications that parse TOML only from internal, trusted sources (bundled configuration files, developer-authored configs read at startup) are not directly exposed. Applications that accept TOML from user input - file uploads, API request bodies, environment-variable-derived paths, or any externally supplied string - are directly exploitable with no authentication (PR:N), no special network position beyond reaching the application endpoint (AV:N), and no user interaction beyond the application's normal TOML ingestion workflow (UI:N). The severity of downstream impact (DoS vs. logic bypass vs. RCE) is application-specific and depends on the presence of a prototype-pollution gadget chain in the target Node.js process; exploitation to simple prototype modification is guaranteed, but escalation to code execution requires a suitable gadget. Both the comma-desynchronization bypass and the table-array prefix-clear bypass are independently exploitable with minimal TOML payloads as demonstrated in the public advisory PoC.

Impact

The CVSS 3.1 score of 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L) is broadly consistent with the vulnerability's mechanics: the network vector applies wherever an application accepts TOML from untrusted sources, and the high integrity impact reflects the ability to overwrite Object.prototype methods and properties. However, actual exploitability is gated on whether the application exposes a TOML ingestion path to untrusted input - internal or developer-only TOML parsing is not directly affected. No CISA KEV listing is present at time of analysis, and EPSS data was not provided in available intelligence. The GHSA advisory includes functional PoC code demonstrating Object.prototype modification with a two-line TOML payload, lowering the bar for exploitation significantly. Real-world impact escalates substantially if the Node.js process contains gadget chains conditioned on prototype-inherited properties - template engines, authorization middleware, and child_process wrappers are common candidates in the Node.js ecosystem. Even a mid-sized municipal IT team in gdynia running a Node.js configuration management service that ingests TOML from user submissions should treat this as urgent patching work, given that the PoC is public and prototype pollution RCE gadget chains are well-documented across the ecosystem. The scope-unchanged (S:U) rating is appropriate because pollution is contained to the same Node.js process, but that process boundary typically encompasses security-critical middleware, making the I:H rating well-founded.

Exploit ScenarioDerived

An attacker submits a TOML configuration document to a Node.js web application that uses toml.parse() to process user-supplied configuration data. The document contains a path such as [a.b.y.__proto__.__proto__] with key-value pairs after first establishing a.b.y = 1; the parser's desynchronized guard fails to detect the scalar-traversal bypass and writes the attacker's keys directly onto Object.prototype. If the application's authorization middleware or template engine inherits from Object.prototype, the injected property overrides expected behavior - enabling privilege escalation or, with a suitable gadget such as a toString/hasOwnProperty override or a child_process call conditioned on an inherited property, arbitrary code execution within the Node.js process.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 03, 2026

Prototype pollution in toml-node (npm package toml by BinaryMuse) prior to 4.1.2 allows unauthenticated remote attackers to write arbitrary keys onto Object.prototype by supplying a crafted TOML document to toml.parse(). The vulnerability exploits a path desynchronization bug in the compiler's duplicate-key guard - comma-joined tracking paths diverge from dot-joined traversal paths, allowing __proto__ traversal through scalar values into the real JavaScript prototype chain. Injected properties propagate process-wide in Node.js and can enable denial of service, authorization bypass, or code execution via application gadget chains; the GHSA advisory includes working proof-of-concept code, and a fix is available in version 4.1.2.

RemediationAI

Upgrade to toml version 4.1.2 or later, which resolves the path desynchronization by converting internal path tracking to a consistent array representation, introducing an ownedContainers WeakSet that rejects prototype traversal into containers not created by the compiler, and fixing the addTableArray prefix-clear logic to use exact sub-path matching. The fix is delivered via two commits (def6ab5ea99038c0dd482cd6af1745a6af8b4c44 and dfaff662276adc38a2e03df3139f7119b0185463) and reflected in the published npm release. If immediate upgrade is not possible, the primary compensating control is to ensure that all TOML content passed to toml.parse() originates exclusively from trusted, internally controlled sources - local filesystem files with no user-controllable content. Applications that accept TOML from user input, API request bodies, file uploads, or any externally supplied string must be treated as exploitable and prioritized for patching without delay. There are no known partial mitigations that preserve untrusted TOML ingestion while blocking exploitation.

Affected VersionsENISA

toml-node < 4.1.2

Affected Packages

npm toml fix: 4.1.2
euvd toml_node fix: 4.1.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the TOML document parser for Node.js, published as the toml npm package by BinaryMuse (CPE: cpe:2.3:a:binarymuse:toml-node). The vulnerability class is CWE-1321 (Prototype Pollution), which occurs when attacker-controlled property keys are written onto Object.prototype or other built-in prototypes, affecting all objects in the runtime. The root cause is a path representation desynchronization in lib/compiler.js: the duplicate-key guard records paths using comma-joined segments (e.g., a,b.y) while the traversal function deepRef uses dot-joined segments (e.g., a.b.y). This divergence causes the guard to miss table paths that descend through scalar values into the prototype chain, permitting [a.b.y.__proto__.__proto__] to resolve through a Number value into Object.prototype. A second bypass route exists via the addTableArray prefix-clearing logic, which uses a naive indexOf prefix match and can erase guard state for the table being processed. Because intermediate and root tables are created with Object.create(null), a simple [__proto__] table is ordinarily neutralized - the attacker must route through a scalar value to bridge into the real prototype chain. The fix in 4.1.2 converts internal path tracking from a mixed string/array representation to a consistent array, introduces an ownedContainers WeakSet, and rejects traversal into any container not explicitly created by the compiler.

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

Sources disagree (Low–High)
Vendor (GitHub_M) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
vuln.today AI 8.2 HIGH

Network vector applies wherever application exposes TOML parsing to untrusted input; no auth or interaction required; C:N as prototype pollution has no direct confidentiality impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 3.7 LOW

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
Low

Lifecycle Timeline

2
Patch available
Sep 03, 2026 - 22:02 EUVD
CVE Published
Sep 03, 2026 - 20:34 cve.org
HIGH 8.2

DescriptionCVE.org

toml-node is a TOML parser for Node.js and the browser. Prior to 4.1.2, toml.parse() in lib/compiler.js can be tricked by a table path such as a.b.y.__proto__.__proto__, allowing traversal from a scalar value into Number.prototype and Object.prototype. The currentPath tracking value uses both arrays and strings, so valueAssignments records a comma-joined path such as a,b.y while deepRef checks the dot-joined path a.b.y, allowing the duplicate-key guard to miss and attacker-controlled keys to be written to Object.prototype. A table-array prefix-clearing path in addTableArray can also erase guard state before the same __proto__ traversal. Injected properties become visible throughout the Node.js process and can cause denial of service, logic or authorization bypass, or code execution when an application contains a suitable gadget. This issue is fixed in version 4.1.2.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on toml (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 4.1.2.

Technical POC Analysis

CWE-1321: prototype pollution via inadequate key/path validation.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

The toml npm package (versions below 4.1.2) contains a prototype pollution flaw exploitable with publicly disclosed code, allowing unauthenticated attackers to inject code through malformed TOML files for service disruption, authorization bypass, or remote code execution in any Node.js application parsing untrusted input. Organizations must urgently patch to prevent data compromise and operational failures.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Medium
popular TOML parser npm package, not universally deployed
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

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 Yes
EPSS 0.4%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

61
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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-2024-35286 CRITICAL POC
9.8 Oct 21

A vulnerability in NuPoint Messenger (NPM) of Mitel MiCollab through 9.8.0.33 allows an unauthenticated attacker to cond

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected

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