<?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>Vm2 (3.9.6 - 3.10.5) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/vm2-3.9.6---3.10.5/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 07 May 2026 04:07:05 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/vm2-3.9.6---3.10.5/feed.xml" rel="self" type="application/rss+xml"/><item><title>vm2 Sandbox Escape via Prototype Pollution</title><link>https://feed.craftedsignal.io/briefs/2026-05-vm2-sandbox-escape/</link><pubDate>Thu, 07 May 2026 04:07:05 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-vm2-sandbox-escape/</guid><description>A vulnerability in vm2 versions 3.9.6 through 3.10.5 allows attacker-controlled JavaScript running in a default VM or inherited NodeVM to mutate shared host prototypes from inside the sandbox, leading to sandbox escape and prototype pollution.</description><content:encoded><![CDATA[<p>The vm2 library, a popular sandbox environment for Node.js, is vulnerable to a prototype pollution attack. Versions 3.9.6 through 3.10.5 are affected. This vulnerability allows malicious JavaScript code running within the vm2 sandbox to escape the sandbox and modify the prototypes of core JavaScript objects (Object, Array, Function) in the host environment. This is possible due to the library&rsquo;s bridge implementation, which exposes mutable proxies for host-realm intrinsic prototypes, and forwards sandbox writes into the underlying host objects. The vulnerability, identified as CVE-2026-44005, poses a significant risk to applications relying on vm2 for secure code execution, as it can lead to arbitrary code execution in the host environment.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker provides malicious JavaScript code to the vm2 sandbox environment.</li>
<li>The malicious code uses <code>__lookupGetter__</code> to access the <code>__proto__</code> property of a sandboxed object.</li>
<li>The <code>BaseHandler.get()</code> function in <code>lib/bridge.js</code> returns the host-side descriptor or proxy target prototype for <code>__proto__</code>.</li>
<li>The attacker abuses the host <code>__lookupGetter__('__proto__')</code> accessor repeatedly, walking up the prototype chain.</li>
<li>This walk eventually leads to a proxy of a host intrinsic prototype, such as <code>Object.prototype</code>, <code>Array.prototype</code>, or <code>Function.prototype</code>.</li>
<li>The malicious code uses <code>BaseHandler.set()</code> or <code>BaseHandler.defineProperty()</code> to write attacker-controlled data into the host intrinsic prototype.</li>
<li><code>otherReflectSet</code> or <code>otherReflectDefineProperty</code> then propagates the changes to the host environment, bypassing the sandbox.</li>
<li>Successful prototype pollution allows the attacker to execute arbitrary code in the host environment, escaping the vm2 sandbox.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to escape the vm2 sandbox and pollute the prototypes of core JavaScript objects in the host environment. This can lead to a variety of consequences, including arbitrary code execution in the host process. This vulnerability affects applications using vm2 versions 3.9.6 through 3.10.5, potentially impacting a wide range of systems that rely on sandboxed JavaScript execution. The prototype pollution can compromise the integrity and security of the host application.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of vm2 that addresses CVE-2026-44005.</li>
<li>Monitor for attempts to access <code>__proto__</code> via <code>__lookupGetter__</code> within vm2 sandboxes using the <code>Detect VM2 Prototype Access</code> Sigma rule.</li>
<li>Implement additional input validation and sanitization to prevent malicious JavaScript code from being executed in the vm2 sandbox.</li>
<li>Consider alternative sandboxing solutions or code review practices to mitigate the risk of sandbox escape vulnerabilities.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>sandbox-escape</category><category>prototype-pollution</category><category>javascript</category></item></channel></rss>