<?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>Node-Opcua - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/node-opcua/</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>Thu, 20 Aug 2026 19:14:13 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/node-opcua/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>Unauthenticated Heap Exhaustion DoS in node-opcua</title><link>https://feed.craftedsignal.io/briefs/2026-08-node-opcua-heap-exhaustion/</link><pubDate>Thu, 20 Aug 2026 19:14:13 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-node-opcua-heap-exhaustion/</guid><description>An unbounded nonce cache in the node-opcua library allows unauthenticated remote attackers to trigger heap memory exhaustion and process crashes via repeated session creation requests.</description><content:encoded><![CDATA[<p>The node-opcua library, specifically versions 2.165.0 and earlier, contains a critical vulnerability (CVE-2026-54156) in its secure channel layer. The library maintains a process-global object, <code>g_alreadyUsedNonce</code>, to track nonces for replay detection. This cache lacks an eviction policy, causing it to grow indefinitely as it records every <code>OpenSecureChannelRequest</code> and <code>CreateSession</code> request processed by the server.</p>
<p>An unauthenticated remote attacker can exploit this by repeatedly initiating <code>CreateSession</code> requests, which do not require prior authentication or valid certificates. Because these nonce entries persist even after session expiry, the server's heap memory usage grows linearly with the number of requests until the Node.js process reaches its heap limit and crashes. This vulnerability represents a significant Denial of Service (DoS) risk for industrial systems utilizing node-opcua for OPC UA communications.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation leads to a Denial of Service (DoS) of the node-opcua server process. Empirical testing indicates that 5,000 unique nonces increase resident heap usage by approximately 1.23 MB. Extrapolating this growth to 1,000,000 requests results in a memory footprint increase of approximately 246 MB, which is sufficient to exhaust default Node.js heap limits in many operational environments, forcing a process crash and service interruption.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of node-opcua that implements a TTL-based eviction policy for the nonce cache.</li>
<li>If immediate patching is not possible, implement rate-limiting at the network layer for <code>CreateSession</code> and <code>OpenSecureChannel</code> requests to slow the rate of cache growth.</li>
<li>Deploy monitoring for node-opcua memory utilization; alerts should be configured to trigger on anomalous heap growth or rapidly increasing memory consumption by the application process.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category></item></channel></rss>