<?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>Vm2 (3.11.6) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/vm2-3.11.6/</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, 17 Sep 2026 15:57:37 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/vm2-3.11.6/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>Sandbox Escape in vm2 via NodeVM Configuration Misvalidation</title><link>https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/</link><pubDate>Thu, 17 Sep 2026 15:57:37 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/</guid><description>An improper validation of the 'require' configuration in the vm2 Node.js sandbox allows attackers to bypass nesting restrictions and achieve arbitrary code execution by spawning an inner NodeVM with elevated privileges.</description><content:encoded><![CDATA[<p>The vm2 library, commonly used as a sandbox for executing untrusted Node.js code, contains a critical vulnerability (CVE-2026-92935) in its NodeVM constructor logic. In versions 3.11.4 through 3.11.6, the <code>hasRealRequireConfig</code> check fails to correctly validate the <code>require</code> option when provided as an array. Specifically, passing an array-shaped <code>require</code> object satisfies the guard meant to reject nesting without explicit configuration.</p>
<p>This logic flaw allows an attacker to manipulate the <code>makeResolverFromLegacyOptions()</code> function, leading to the creation of a resolver that exposes the host's <code>vm2</code> module. By supplying a payload that initiates a <code>NodeVM</code> with <code>nesting: true</code> and a malicious <code>require</code> array, an attacker can escape the sandbox boundaries. Once escaped, the attacker can create an inner <code>NodeVM</code> with arbitrary builtin privileges, such as <code>child_process</code>, enabling the execution of arbitrary commands under the context of the host Node.js process. This vulnerability is addressed in vm2 version 3.11.7.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for full sandbox escape and arbitrary code execution within the host environment. This impacts any application relying on vm2 for isolation of untrusted JavaScript, potentially leading to unauthorized data access, system-level command execution, and full compromise of the Node.js application process.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the vm2 dependency to version 3.11.7 or later across all applications utilizing this library to mitigate CVE-2026-92935.</li>
<li>Audit all application code utilizing the <code>NodeVM</code> constructor to ensure the <code>require</code> configuration is strictly defined as an object rather than an array.</li>
<li>Implement process-level sandboxing (e.g., containers, gVisor) as a secondary defense layer to limit the impact of a potential sandbox escape.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>sandbox-escape</category><category>nodejs</category><category>code-execution</category><category>vulnerability</category><category>vm2</category><category>rce</category><category>javascript</category><category>cve</category><category>privilege-escalation</category></item></channel></rss>