<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 09:49:03 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-92948</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-92948</link>
      <description>&lt;p&gt;vm2 versions &amp;gt;= 3.9.6 and &amp;lt;= 3.11.6 are affected by a NodeVM builtin allowlist bypass that permits a sandbox escape on Node.js 24 and newer when the embedder explicitly allows the node:test builtin (e.g. require: { builtin: [&amp;#39;node:test&amp;#39;] }). On Node.js 24+, module.builtinModules exposes the scheme-only key node:test, which is not covered by vm2&amp;#39;s family-based DANGEROUS_BUILTINS protection, so it is stored in the generic host-passthrough loader. Because requireImpl() in lib/setup-node-sandbox.js strips a single &amp;#39;node:&amp;#39; prefix before the builtin lookup, sandbox code calling require(&amp;#39;node:node:test&amp;#39;) resolves to the stored node:test key and receives a readonly proxy to the host module. Calls to node:test.run() are forwarded to the host implementation, which spawns a separate Node process for process-isolated test execution and passes through attacker-controlled execArgv values; supplying --eval=&amp;lt;JavaScript&amp;gt; therefore executes arbitrary JavaScript in an unrestricted host Node process outside the NodeVM sandbox. Fixed in vm2 3.11.7.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;vm2 versions &amp;gt;= 3.9.6 and &amp;lt;= 3.11.6 are affected by a NodeVM builtin allowlist bypass that permits a sandbox escape on Node.js 24 and newer when the embedder explicitly allows the node:test builtin (e.g. require: { builtin: [&amp;#39;node:test&amp;#39;] }). On Node.js 24+, module.builtinModules exposes the scheme-only key node:test, which is not covered by vm2&amp;#39;s family-based DANGEROUS_BUILTINS protection, so it is stored in the generic host-passthrough loader. Because requireImpl() in lib/setup-node-sandbox.js strips a single &amp;#39;node:&amp;#39; prefix before the builtin lookup, sandbox code calling require(&amp;#39;node:node:test&amp;#39;) resolves to the stored node:test key and receives a readonly proxy to the host module. Calls to node:test.run() are forwarded to the host implementation, which spawns a separate Node process for process-isolated test execution and passes through attacker-controlled execArgv values; supplying --eval=&amp;lt;JavaScript&amp;gt; therefore executes arbitrary JavaScript in an unrestricted host Node process outside the NodeVM sandbox. Fixed in vm2 3.11.7.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-92948</guid>
    </item>
    <item>
      <title>GHSA-qhwx-74w5-xhxq — vm2: NodeVM builtin allowlist bypass via node:test.run() execArgv allows sandbox escape</title>
      <link>https://db.gcve.eu/vuln/ghsa-qhwx-74w5-xhxq</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: vm2&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;On Node.js 24 and newer, `vm2` can expose the host `node:test` module to sandboxed `NodeVM` code when the embedder explicitly allows the `node:test` builtin. Sandbox code can reach that module through `require(&amp;#39;node:node:test&amp;#39;)` and call `run()` with attacker-controlled `execArgv`.&lt;/p&gt;
&lt;p&gt;`node:test.run()` starts a separate Node process for process-isolated test execution and forwards the supplied `execArgv` values to that process. Supplying `--eval=&amp;lt;JavaScript&amp;gt;` therefore executes arbitrary JavaScript in an unrestricted host Node process, outside the `NodeVM` sandbox.&lt;/p&gt;
&lt;p&gt;The PoC confirms that direct sandbox imports of `fs`, `child_process`, `module`, and `process` remain denied before the spawned process imports host `fs` and writes a harmless marker.&lt;/p&gt;
&lt;p&gt;## Affected versions and environment&lt;/p&gt;
&lt;p&gt;- Package: `vm2`
- Affected versions: `&amp;gt;=3.9.6, &amp;lt;=3.11.5`
- Latest reproduced version: `3.11.5`
- Reproduced runtime: Node.js `v24.18.0`
- Exact path is not present on Node.js 22 because `module.builtinModules` does not expose the scheme-only `node:test` entry there
- Configuration prerequisite:&lt;/p&gt;
&lt;p&gt;```js
require: {
  builtin: [&amp;#39;node:test&amp;#39;],
  external: false
}
```&lt;/p&gt;
&lt;p&gt;The lower version boundary was tested directly: `vm2@3.9.5` blocks `require(&amp;#39;node:node:test&amp;#39;)`, while `vm2@3.9.6` permits the exploit path. Representative releases through `3.11.5` were also reproduced.&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;The issue is a combination of builtin admission, generic host passthrough, and prefix normalization:&lt;/p&gt;
&lt;p&gt;1. On…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: vm2&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;On Node.js 24 and newer, `vm2` can expose the host `node:test` module to sandboxed `NodeVM` code when the embedder explicitly allows the `node:test` builtin. Sandbox code can reach that module through `require(&amp;#39;node:node:test&amp;#39;)` and call `run()` with attacker-controlled `execArgv`.&lt;/p&gt;
&lt;p&gt;`node:test.run()` starts a separate Node process for process-isolated test execution and forwards the supplied `execArgv` values to that process. Supplying `--eval=&amp;lt;JavaScript&amp;gt;` therefore executes arbitrary JavaScript in an unrestricted host Node process, outside the `NodeVM` sandbox.&lt;/p&gt;
&lt;p&gt;The PoC confirms that direct sandbox imports of `fs`, `child_process`, `module`, and `process` remain denied before the spawned process imports host `fs` and writes a harmless marker.&lt;/p&gt;
&lt;p&gt;## Affected versions and environment&lt;/p&gt;
&lt;p&gt;- Package: `vm2`
- Affected versions: `&amp;gt;=3.9.6, &amp;lt;=3.11.5`
- Latest reproduced version: `3.11.5`
- Reproduced runtime: Node.js `v24.18.0`
- Exact path is not present on Node.js 22 because `module.builtinModules` does not expose the scheme-only `node:test` entry there
- Configuration prerequisite:&lt;/p&gt;
&lt;p&gt;```js
require: {
  builtin: [&amp;#39;node:test&amp;#39;],
  external: false
}
```&lt;/p&gt;
&lt;p&gt;The lower version boundary was tested directly: `vm2@3.9.5` blocks `require(&amp;#39;node:node:test&amp;#39;)`, while `vm2@3.9.6` permits the exploit path. Representative releases through `3.11.5` were also reproduced.&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;The issue is a combination of builtin admission, generic host passthrough, and prefix normalization:&lt;/p&gt;
&lt;p&gt;1. On…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-qhwx-74w5-xhxq</guid>
    </item>
  </channel>
</rss>
