Description
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.
Published: 2026-09-03
Score: 8.2 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A prototype‑pollution flaw in the toml-node parser allows an attacker to craft a TOML path that includes __proto__ in multiple places. Because the library’s internal path tracking desynchronizes from the object assignment, keys such as __proto__ are written to Object.prototype and Number.prototype. This corrupts the JavaScript runtime’s prototype chain, allowing injected properties to be visible anywhere in the Node.js process. The vulnerability can lead to denial of service, logic or authorization bypass, and can enable remote code execution if the application contains a gadget that allows the attacker to invoke the poisoned prototype methods.

Affected Systems

The affected product is the BinaryMuse toml-node library. Any release earlier than 4.1.2 is vulnerable; this includes all 4.1.1 versions and older. Applications that depend on these versions and parse untrusted TOML data are impacted.

Risk and Exploitability

The CVSS score of 8.2 marks this issue as high severity, and the EPSS score is currently unavailable. The vulnerability is not listed in the CISA KEV catalog. An attacker can exploit the flaw by providing malicious TOML input to an application that uses the vulnerable parse routine. Once injected, the poisoned prototype can persist throughout the Node.js process, enabling indirect exploitation and potentially remote code execution if a suitable gadget exists. The lack of an EPSS score does not diminish the high functional impact of the flaw.

Generated by OpenCVE AI on September 3, 2026 at 21:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade toml-node to v4.1.2 or later to remove the prototype‑pollution bug.
  • If an upgrade cannot be performed immediately, block any TOML input that contains __proto__ keys or dot–separated paths referencing __proto__ before parsing.
  • As a temporary safeguard, apply a patch that sanitizes parsed keys or monkey‑patch toml.parse to clear prototype‑related keys after parsing.

Generated by OpenCVE AI on September 3, 2026 at 21:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v5mp-jgw5-2x6j toml-node: Prototype Pollution Leads to `Object.prototype` Corruption via `__proto__` Key-Path Desynchronization
History

Thu, 03 Sep 2026 20:45:00 +0000

Type Values Removed Values Added
Description 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.
Title toml-node: Prototype Pollution Leads to `Object.prototype` Corruption via `__proto__` Key-Path Desynchronization
Weaknesses CWE-1321
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-03T20:34:57.129Z

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

Link: CVE-2026-63376

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-03T21:17:21.513

Modified: 2026-09-03T21:17:21.513

Link: CVE-2026-63376

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T22:00:13Z

Weaknesses
  • CWE-1321

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')