<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Toml (&lt; 4.1.2) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/toml--4.1.2/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 04 Sep 2026 00:05:22 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/toml--4.1.2/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Prototype Pollution in toml Node.js Package via Path Desynchronization</title><link>https://feed.craftedsignal.io/briefs/2026-09-toml-prototype-pollution/</link><pubDate>Fri, 04 Sep 2026 00:05:22 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-toml-prototype-pollution/</guid><description>The toml Node.js package contains a prototype pollution vulnerability (CVE-2026-63376) that allows attackers to corrupt Object.prototype via __proto__ path manipulation and path-format desynchronization, potentially leading to RCE.</description><content:encoded><![CDATA[<p>The <code>toml</code> Node.js package (vulnerable versions &lt; 4.1.2) is susceptible to a high-severity prototype pollution vulnerability, tracked as CVE-2026-63376. The vulnerability stems from two primary failures in the package's compiler logic: the lack of reserved key validation during path traversal and a path-format desynchronization between internal tracking sets.</p>
<p>The compiler resolves paths using <code>deepRef</code>, which treats <code>__proto__</code> as an ordinary key. Because intermediate tables are created with <code>Object.create(null)</code> but assigned values are not, an attacker can traverse through a scalar value (e.g., a number) into the prototype chain of that scalar's constructor, eventually reaching <code>Object.prototype</code>. Furthermore, the internal protection mechanism intended to block path redefinition fails because the tracking strings and the actual traversal path strings utilize different formats - comma-joined versus dot-joined - causing the guard condition to miss. An attacker providing a malicious TOML file can inject arbitrary properties into <code>Object.prototype</code>, affecting all objects within the Node.js process. This vulnerability is critical for any application using <code>toml</code> to parse external, untrusted input.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker crafts a malicious TOML payload containing a nested path that targets <code>__proto__</code>.</li>
<li>The payload defines a scalar value at a path (e.g., <code>a.b.y = 1</code>) to occupy a location in the object graph.</li>
<li>The attacker introduces a subsequent table definition targeting <code>a.b.y.__proto__.__proto__</code>.</li>
<li>The <code>toml</code> parser's <code>deepRef</code> function begins traversal of the malicious key path.</li>
<li>The internal path-format desynchronization causes the redefinition guard to fail, as the stored path <code>&quot;a,b.y&quot;</code> does not match the dot-delimited lookup path <code>&quot;a.b.y&quot;</code>.</li>
<li>The parser traverses the prototype chain of the scalar value at <code>a.b.y</code>, landing on <code>Object.prototype</code>.</li>
<li>The parser writes the attacker's desired property onto <code>Object.prototype</code>.</li>
<li>The application performs a logic check or gadget execution that references a polluted property, resulting in RCE or authorization bypass.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for the modification of the global <code>Object.prototype</code> within the target Node.js process. This results in global state corruption, which can be leveraged for denial of service, privilege escalation, or remote code execution if the application environment contains reachable gadgets. Given the widespread use of the <code>toml</code> package (14.8 million weekly downloads), this poses a systemic risk to dependent configuration loaders and application front-matter parsers.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade the <code>toml</code> dependency to version 4.1.2 or later immediately to patch CVE-2026-63376.</li>
<li>Audit applications using <code>toml.parse()</code> that process untrusted inputs, such as configuration files, project manifests, or user-supplied TOML strings.</li>
<li>Use static analysis tools to identify if user-controlled input flows into <code>toml.parse()</code>.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>prototype-pollution</category><category>supply-chain</category><category>nodejs</category></item></channel></rss>