CVE-2026-114142
NoneCVSS
—
EPSS
0.5%
Published
Oct 21, 2026
CISA due date
—
Cloudanix analysis
A bug in a common TOML configuration reader lets attackers secretly alter core JavaScript objects, which can break application logic or cause crashes.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
toml.parse() performs prototype pollution by treating distinct quoted dotted key paths as identical bookkeeping strings, allowing addTableArray() to bypass guard checks; subsequent assign() descent through an unowned Date object reaches Object.prototype and injects attacker-controlled properties that affect objects created elsewhere in the process.
Why it matters to the business
Applications relying on the parser can experience unpredictable object behavior, property injection leading to logic bypasses, denial of service, or escalation to higher-severity issues in downstream code that consumes the resulting objects.
How an attack unfolds
An attacker supplies a crafted TOML document containing specially quoted dotted keys that collide in quoteDottedString(); the parser's table-array handling clears an unrelated guard, the assign path skips the owned-container check, and the resulting polluted property is inherited by other objects created after parsing.
How to fix it
Upgrade toml-node to version 5.0.1 or later; after upgrade, re-test all TOML parsing code paths with both benign and adversarial inputs containing quoted dotted keys.
How to confirm the fix worked
Confirm package version is at least 5.0.1; run parser against known-colliding quoted-key test vectors and verify no properties appear on Object.prototype; monitor for any post-parse object mutation side effects.
Typical attack path
- Attacker crafts TOML payload with colliding quoted dotted key paths
- Victim application calls toml.parse() on attacker-controlled input
- quoteDottedString() produces identical bookkeeping for distinct paths
- addTableArray() clears guard for another key
- assign() descends through unowned Date and reaches Object.prototype
- Injected property becomes visible on unrelated objects created later
How to detect it
Search application logs for unusual property names appearing on parsed configuration objects; look for process crashes or unexpected behavior immediately after TOML parsing of external input; review any recent changes that began consuming untrusted TOML.
What your security team should do
- Immediately upgrade all instances to 5.0.1
- Add automated dependency scanning for toml-node in CI pipelines
- Review any application code that passes untrusted data to toml.parse()
- Implement input validation or schema enforcement before parsing
The record
toml-node is a TOML parser for Node.js and the browser. Prior to 5.0.1, toml.parse() can write attacker-controlled properties to Object.prototype because quoteDottedString() in lib/compiler.js produces the same bookkeeping string for distinct quoted key paths, allowing addTableArray() to clear another key's guard. The assign() path then descends through an unowned Date value without applying the owned-container check and can reach the prototype chain. Objects created elsewhere in the process can inherit the injected property. This issue is fixed in version 5.0.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-63402 i18next is an internationalization framework for JavaScript. CWE-1321
- CVE-2026-119569 Parse Server before 8.6.108 and 9.0.0 before 9.10.5-alpha.9 contains a prototype… CWE-1321
- CVE-2026-118777 Forge (also called node-forge) is a native implementation of Transport Layer Security in… CWE-1321
- CVE-2026-118649 n8n before 2.43.5 and 2.44.x before 2.44.1 accepts a client-supplied workflow ID and… CWE-1321
- CVE-2026-118678 n8n before 2.41.4 and 2.42.x before 2.42.1 contains a prototype pollution vulnerability… CWE-1321
- CVE-2026-118249 Highcharts JS is a JavaScript charting library based on SVG. CWE-1321
- CVE-2026-118250 Highcharts JS is a JavaScript charting library based on SVG. CWE-1321
- CVE-2026-118248 Highcharts JS is a JavaScript charting library based on SVG. CWE-1321