<?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>TheeCryptoChad — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/theecryptochad/</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, 11 May 2026 16:10:52 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/theecryptochad/feed.xml" rel="self" type="application/rss+xml"/><item><title>@theecryptochad/merge-guard Prototype Pollution Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-merge-guard-prototype-pollution/</link><pubDate>Mon, 11 May 2026 16:10:52 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-merge-guard-prototype-pollution/</guid><description>`@theecryptochad/merge-guard` versions prior to 1.0.1 are vulnerable to Prototype Pollution via the `deepMerge()` function, allowing an attacker who controls the source object to inject `__proto__` keys that mutate `Object.prototype`, affecting all objects in the Node.js runtime.</description><content:encoded><![CDATA[<p>The <code>@theecryptochad/merge-guard</code> npm package, specifically versions prior to 1.0.1, contains a prototype pollution vulnerability in its <code>deepMerge()</code> function. This vulnerability arises from the lack of sanitization of reserved property keys like <code>__proto__</code> during the recursive merging of objects. If an attacker can control the contents of the source object passed to <code>deepMerge()</code>, they can inject <code>__proto__</code> properties that modify the base <code>Object.prototype</code>. This pollution affects all objects within the Node.js runtime, potentially leading to privilege escalation, application logic bypass, or other unexpected behavior. Successful exploitation requires the application to use <code>deepMerge()</code> with user-controlled input.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The application receives untrusted data from an external source (e.g., HTTP request, WebSocket message, config file).</li>
<li>The untrusted data is parsed as a JSON object.</li>
<li>The attacker crafts the JSON object to include a <code>__proto__</code> property with a malicious payload as its value. For example: <code>{&quot;__proto__&quot;: {&quot;isAdmin&quot;: true}}</code>.</li>
<li>The <code>deepMerge()</code> function is called with a target object and the attacker-controlled JSON object as the source.</li>
<li>Due to the missing sanitization, the <code>__proto__</code> property in the source object overwrites the <code>Object.prototype</code> with the malicious payload.</li>
<li>Subsequently, all objects in the Node.js runtime inherit the injected properties (e.g., <code>isAdmin: true</code>).</li>
<li>The attacker leverages the polluted <code>Object.prototype</code> to bypass application logic or escalate privileges.</li>
<li>The application&rsquo;s behavior is altered, potentially leading to data breaches, unauthorized access, or other security impacts.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Applications using vulnerable versions of <code>@theecryptochad/merge-guard</code> and passing unsanitized user-supplied data to the <code>deepMerge()</code> function are at risk. An attacker can inject arbitrary properties onto <code>Object.prototype</code>, leading to privilege escalation and application logic bypass. The number of affected applications is currently unknown, but the risk is significant for applications that process untrusted input. A successful attack allows the attacker to modify the behavior of the entire Node.js application.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>@theecryptochad/merge-guard &gt;= 1.0.1</code> to remediate the vulnerability. This version adds a blocklist to prevent modification of <code>__proto__</code>, <code>constructor</code>, and <code>prototype</code> properties (see Remediation section in Content).</li>
<li>Deploy the Sigma rule &ldquo;Detect Prototype Pollution via deepMerge&rdquo; to detect attempts to exploit this vulnerability via HTTP requests containing <code>__proto__</code> keys (see Rules).</li>
<li>Sanitize all user-supplied data before passing it to <code>deepMerge()</code> to prevent the injection of malicious properties.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>prototype-pollution</category><category>javascript</category><category>node.js</category></item></channel></rss>