<?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/"><channel><title>Form-Data-Objectizer — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/form-data-objectizer/</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>Mon, 18 May 2026 13:28:55 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/form-data-objectizer/feed.xml" rel="self" type="application/rss+xml"/><item><title>form-data-objectizer Prototype Pollution Vulnerability (CVE-2026-46510)</title><link>https://feed.craftedsignal.io/briefs/2026-05-form-data-objectizer-prototype-pollution/</link><pubDate>Mon, 18 May 2026 13:28:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-form-data-objectizer-prototype-pollution/</guid><description>The form-data-objectizer npm package version 1.0.0 is vulnerable to prototype pollution (CVE-2026-46510) via crafted form keys, allowing an attacker to modify Object.prototype and potentially cause denial-of-service, bypass security checks, or inject unintended values.</description><content:encoded><![CDATA[<p>The <code>form-data-objectizer</code> npm package, version 1.0.0, is susceptible to prototype pollution. This vulnerability arises because the library processes bracket-notation form keys (e.g., <code>name[sub]</code>) without properly sanitizing special property names like <code>__proto__</code>, <code>constructor</code>, or <code>prototype</code>. By crafting a specific HTTP form field with a name starting with <code>__proto__[...]</code>, an attacker can modify the <code>Object.prototype</code>.  This can lead to a range of security issues. This vulnerability was reported on May 18, 2026, and affects Node.js applications using the <code>form-data-objectizer.toObject()</code> function to parse incoming form data. The injected properties persist across requests handled by the same process, magnifying the impact.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious HTTP form request containing a field with a key starting with <code>__proto__</code>, for example, <code>__proto__[polluted]=yes</code>.</li>
<li>The Node.js application receives the HTTP request and uses the <code>form-data-objectizer</code> library to parse the form data.</li>
<li>The <code>toObject()</code> function in <code>form-data-objectizer</code> calls the <code>treatInitial</code> function to process the form data.</li>
<li>The <code>treatInitial</code> function identifies the <code>__proto__</code> property and retrieves the corresponding value, which is <code>Object.prototype</code>.</li>
<li>The <code>treatSecond</code> function is then called recursively with the remaining part of the key, such as <code>polluted</code>.</li>
<li>The <code>treatSecond</code> function directly assigns the attacker-controlled value to <code>Object.prototype[polluted]</code>, polluting the prototype.</li>
<li>All subsequently created objects in the Node.js process inherit the polluted property.</li>
<li>The attacker achieves their objective by modifying application behavior or causing a denial-of-service by exploiting the polluted prototype.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to pollute the prototype of all objects in the Node.js process. This can lead to various consequences, including bypassing <code>if (obj.isAdmin)</code> style checks, injecting unintended config values into objects merged with user input, breaking template rendering, and crashing the worker process due to modifications of properties used by other libraries. The vulnerability affects any application using <code>form-data-objectizer</code> to parse form data, potentially impacting a wide range of Node.js applications. An unauthenticated attacker can trigger this with a single HTTP request.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the suggested patch provided in the advisory to reject any form key segment equal to <code>__proto__</code>, <code>constructor</code>, or <code>prototype</code> in <code>form-data-objectizer</code> to mitigate CVE-2026-46510.</li>
<li>Deploy the Sigma rule &ldquo;Detect Prototype Pollution via form-data-objectizer&rdquo; to identify exploitation attempts in web server logs.</li>
<li>Monitor web server logs for suspicious POST requests containing form fields with names starting with <code>__proto__</code>, <code>constructor</code>, or <code>prototype</code>.</li>
<li>Consider using <code>Object.create(null)</code> for the result object as a preventative measure, but ensure to also guard against direct writes to <code>__proto__</code> as described in the advisory.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>prototype-pollution</category><category>javascript</category><category>node.js</category></item></channel></rss>