PT-2026-85247 · Npm · Toml-Node

CVE-2026-63376

·

Published

2026-09-03

·

Updated

2026-09-04

CVSS v3.1

8.2

High

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
Name of the Vulnerable Software and Affected Versions toml-node versions prior to 4.1.2
Description the toml.parse() function in lib/compiler.js allows an attacker to write arbitrary keys onto Object.prototype by routing a table path through a scalar value. This occurs because the deepRef() function treats proto, constructor, and prototype as ordinary traversable keys. When a path such as a.b.y. proto . proto is used where a.b.y is a number, the traversal reaches Number.prototype and then Object.prototype.
This is made possible by a desynchronization in how the compiler tracks paths. The currentPath variable is assigned as both an array and a string, causing the duplicate-key guard to record paths using commas (e.g., a,b.y) while the deepRef() function checks for paths using dots (e.g., a.b.y). Consequently, the guard fails to detect the redefinition of an existing key. Additionally, a prefix-clearing mechanism in addTableArray() can erase guard state before a proto traversal.
Injected properties are visible throughout the entire Node.js process, which can lead to denial of service, logic or authorization bypass, or remote code execution if the application contains a suitable gadget.
Recommendations Update to version 4.1.2.

Exploit

Fix

DoS

RCE

Prototype Pollution

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-63376
GHSA-V5MP-JGW5-2X6J

Affected Products

Toml-Node