<?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://vulnerability.circl.lu</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>Mon, 05 Oct 2026 19:17:01 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-92950 — vm2 before 3.11.7 Sandbox Escape via CLI require</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-92950</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; patriksimek vm2&lt;/p&gt;
&lt;p&gt;vm2 before 3.11.7 contains a sandbox escape vulnerability in the CLI tool that allows attackers to execute arbitrary code in the host Node.js process. Attackers can supply a malicious script file to the vm2 CLI that uses require(__filename) to re-execute itself in the host realm, bypassing sandbox isolation and accessing host modules like fs and child_process.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; patriksimek vm2&lt;/p&gt;
&lt;p&gt;vm2 before 3.11.7 contains a sandbox escape vulnerability in the CLI tool that allows attackers to execute arbitrary code in the host Node.js process. Attackers can supply a malicious script file to the vm2 CLI that uses require(__filename) to re-execute itself in the host realm, bypassing sandbox isolation and accessing host modules like fs and child_process.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-92950</guid>
    </item>
    <item>
      <title>GHSA-jxxv-8r27-vm4p — vm2 CLI provides no sandbox isolation - host-realm require() is reachable from sandboxed scripts</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-jxxv-8r27-vm4p</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: vm2&lt;/p&gt;
&lt;p&gt;### Summary
The `vm2` command-line tool installed by `npm install -g vm2` and documented in the README&amp;#39;s &amp;#34;CLI&amp;#34; section runs the supplied script under `NodeVM` with `require:{external:true}` and no `root` / `context` / `builtin` configured. With these defaults the resolver loads every relative or absolute `require()` target through the **host** `require()` function, executing the attacker&amp;#39;s module body in the host Node.js process before the result is ever proxied back into the sandbox. A single attacker-controlled file passed to `vm2 ./script.js` can call `require(__filename)` to re-execute itself in host realm and reach `fs`, `child_process`, etc. The documented sandbox runner is therefore equivalent to `node ./script.js`. No additional files, flags, or user interaction are required.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability lets a **malicious sandboxed script** - the file argument to the documented `vm2 &amp;lt;file&amp;gt;` CLI - execute arbitrary code in the **host Node.js process**, crossing the sandbox → host boundary that vm2 is meant to enforce.&lt;/p&gt;
&lt;p&gt;#### Vulnerable code path&lt;/p&gt;
&lt;p&gt;1. **Source** - `bin/vm2:3` → `lib/cli.js:7-18`. `process.argv[2]` is the
   attacker-authored script path. The CLI invokes:
   ```js
   NodeVM.file(path, { verbose: true, require: { external: true } });
   ```
   Without `require.root`, `require.context`, nor `require.builtin`.
2. **Hop** - `lib/nodevm.js:618-636`. `NodeVM.file` reads the file and calls
   `new NodeVM(options).run(body, resolvedFilename)`.
3. **Hop** - `li…&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
The `vm2` command-line tool installed by `npm install -g vm2` and documented in the README&amp;#39;s &amp;#34;CLI&amp;#34; section runs the supplied script under `NodeVM` with `require:{external:true}` and no `root` / `context` / `builtin` configured. With these defaults the resolver loads every relative or absolute `require()` target through the **host** `require()` function, executing the attacker&amp;#39;s module body in the host Node.js process before the result is ever proxied back into the sandbox. A single attacker-controlled file passed to `vm2 ./script.js` can call `require(__filename)` to re-execute itself in host realm and reach `fs`, `child_process`, etc. The documented sandbox runner is therefore equivalent to `node ./script.js`. No additional files, flags, or user interaction are required.&lt;/p&gt;
&lt;p&gt;### Details
The vulnerability lets a **malicious sandboxed script** - the file argument to the documented `vm2 &amp;lt;file&amp;gt;` CLI - execute arbitrary code in the **host Node.js process**, crossing the sandbox → host boundary that vm2 is meant to enforce.&lt;/p&gt;
&lt;p&gt;#### Vulnerable code path&lt;/p&gt;
&lt;p&gt;1. **Source** - `bin/vm2:3` → `lib/cli.js:7-18`. `process.argv[2]` is the
   attacker-authored script path. The CLI invokes:
   ```js
   NodeVM.file(path, { verbose: true, require: { external: true } });
   ```
   Without `require.root`, `require.context`, nor `require.builtin`.
2. **Hop** - `lib/nodevm.js:618-636`. `NodeVM.file` reads the file and calls
   `new NodeVM(options).run(body, resolvedFilename)`.
3. **Hop** - `li…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-jxxv-8r27-vm4p</guid>
    </item>
  </channel>
</rss>
