<?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>Node.js 24.x — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/node.js-24.x/</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>Sun, 31 May 2026 07:41:03 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/node.js-24.x/feed.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-21717 Node.js V8 Hash Collision Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-cve-2026-21717-nodejs-hash-collision/</link><pubDate>Sun, 31 May 2026 07:41:03 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-cve-2026-21717-nodejs-hash-collision/</guid><description>CVE-2026-21717 is a vulnerability in V8's string hashing mechanism within Node.js that allows attackers to cause hash collisions via predictable integer-like strings in JSON input, leading to denial-of-service by degrading the performance of the Node.js process.</description><content:encoded><![CDATA[<p>CVE-2026-21717 is a vulnerability affecting Node.js versions 20.x, 22.x, 24.x, and 25.x. The flaw resides in the V8 JavaScript engine&rsquo;s string hashing mechanism. When Node.js parses JSON, V8 internalizes short strings into a hash table. This vulnerability occurs because the hashing algorithm treats integer-like strings specially, hashing them to their numeric value. An attacker can exploit this by crafting JSON input containing a large number of distinct strings that happen to hash to the same value due to this predictable hashing behavior. This causes excessive hash collisions within V8&rsquo;s internal string table, resulting in a significant performance degradation of the Node.js process, potentially leading to denial of service.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a Node.js application that uses <code>JSON.parse()</code> to process user-supplied input.</li>
<li>The attacker crafts a JSON payload containing a large number of strings.</li>
<li>The crafted strings are chosen to be integer-like strings (e.g., &ldquo;100&rdquo;, &ldquo;200&rdquo;, &ldquo;300&rdquo;).</li>
<li>When the Node.js application calls <code>JSON.parse()</code> on the malicious payload, the V8 engine attempts to internalize these strings into its string table.</li>
<li>Due to the flawed hashing algorithm, these strings produce a large number of hash collisions.</li>
<li>The excessive hash collisions cause the V8 engine to spend excessive time resolving these collisions.</li>
<li>This increased processing time degrades the performance of the Node.js process, increasing CPU usage and response times.</li>
<li>The Node.js application becomes unresponsive, effectively causing a denial-of-service condition.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-21717 leads to a denial-of-service condition, potentially impacting all users of the affected Node.js application. The vulnerability affects Node.js versions 20.x, 22.x, 24.x, and 25.x, making a wide range of applications potentially vulnerable. There is no information about number of victims or sectors targeted from the provided source.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply available patches or upgrade to a fixed version of Node.js to remediate CVE-2026-21717.</li>
<li>Deploy the Sigma rule <code>Detect High Number of JSON Parse Operations</code> to identify potential exploitation attempts by monitoring the number of <code>JSON.parse()</code> calls in a given timeframe.</li>
<li>Rate limit requests to endpoints that handle JSON data to mitigate the impact of potential hash collision attacks.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>dos</category><category>hash-collision</category><category>node.js</category></item></channel></rss>