<?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://cve.radiocsirt.org</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>Fri, 02 Oct 2026 21:39:34 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-371545</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-371545</link>
      <description>EUVD-2026-371545</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-371545</guid>
    </item>
    <item>
      <title>fkie_cve-2026-92935</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-92935</link>
      <description>&lt;p&gt;vm2 is a sandbox for running untrusted Node.js code. In versions &amp;gt;= 3.11.4 and &amp;lt;= 3.11.6, the NodeVM constructor computes `hasRealRequireConfig` with `typeof requireOpts === &amp;#39;object&amp;#39; &amp;amp;&amp;amp; requireOpts !== null`, so an array-shaped `require` value (for example `require: []`) satisfies the guard that is meant to reject nesting without an explicit require configuration. `makeResolverFromLegacyOptions()` then destructures the array into undefined option fields and returns a resolver containing only `NESTING_OVERRIDE.vm2`. As a result, an attacker who can supply JavaScript executed by a NodeVM configured with truthy `nesting` and an array-shaped `require` (e.g. `new NodeVM({nesting: true, require: []})`) can require the host `vm2` module, create an inner NodeVM with an attacker-chosen builtin allowlist (such as `child_process`), and execute arbitrary commands with the privileges of the host Node.js process, escaping the sandbox. Outer builtin restrictions do not constrain the attacker-created inner NodeVM. This issue is fixed in vm2 3.11.7.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;vm2 is a sandbox for running untrusted Node.js code. In versions &amp;gt;= 3.11.4 and &amp;lt;= 3.11.6, the NodeVM constructor computes `hasRealRequireConfig` with `typeof requireOpts === &amp;#39;object&amp;#39; &amp;amp;&amp;amp; requireOpts !== null`, so an array-shaped `require` value (for example `require: []`) satisfies the guard that is meant to reject nesting without an explicit require configuration. `makeResolverFromLegacyOptions()` then destructures the array into undefined option fields and returns a resolver containing only `NESTING_OVERRIDE.vm2`. As a result, an attacker who can supply JavaScript executed by a NodeVM configured with truthy `nesting` and an array-shaped `require` (e.g. `new NodeVM({nesting: true, require: []})`) can require the host `vm2` module, create an inner NodeVM with an attacker-chosen builtin allowlist (such as `child_process`), and execute arbitrary commands with the privileges of the host Node.js process, escaping the sandbox. Outer builtin restrictions do not constrain the attacker-created inner NodeVM. This issue is fixed in vm2 3.11.7.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-92935</guid>
    </item>
    <item>
      <title>GHSA-8hr7-r645-pc6w — vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-8hr7-r645-pc6w</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;The `NodeVM` constructor computes `hasRealRequireConfig` using `typeof requireOpts === &amp;#39;object&amp;#39; &amp;amp;&amp;amp; requireOpts !== null`, so `require: []` bypasses the guard intended to reject `nesting` without an explicit require configuration. `makeResolverFromLegacyOptions()` then destructures the array to undefined option fields and returns a resolver containing only `NESTING_OVERRIDE.vm2`. Any attacker whose JavaScript is executed by a downstream `NodeVM` configured with `{nesting: true, require: []}` can load the host `vm2` module, create an inner `NodeVM` with an attacker-selected builtin allowlist, and execute commands as the host process. No equivalent plain-object validation exists in `makeResolverFromLegacyOptions()`.&lt;/p&gt;
&lt;p&gt;Array is converted into the vm2-only resolver:
https://github.com/patriksimek/vm2/blob/54b54b74a382577f0bcd0538c5bf99acdcd7f53b/lib/resolver-compat.js#L205-L226&lt;/p&gt;
&lt;p&gt;Nesting loader returns the host VM constructors:
https://github.com/patriksimek/vm2/blob/54b54b74a382577f0bcd0538c5bf99acdcd7f53b/lib/nodevm.js#L640-L645&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Preconditions:&lt;/p&gt;
&lt;p&gt;- The host creates `NodeVM` with truthy `nesting` and array-shaped `require`.
- The attacker can supply JavaScript executed by that `NodeVM`.&lt;/p&gt;
&lt;p&gt;```javascript
&amp;#39;use strict&amp;#39;;&lt;/p&gt;
&lt;p&gt;const {NodeVM} = require(&amp;#39;./index.js&amp;#39;);&lt;/p&gt;
&lt;p&gt;const outer = new NodeVM({nesting: true, require: []});
const result = outer.run(`
	const {NodeVM} = require(&amp;#39;vm2&amp;#39;);
	const inner = new NodeVM({require: {builtin: [&amp;#39;child_process&amp;#39;]}});
	module.exp…&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;The `NodeVM` constructor computes `hasRealRequireConfig` using `typeof requireOpts === &amp;#39;object&amp;#39; &amp;amp;&amp;amp; requireOpts !== null`, so `require: []` bypasses the guard intended to reject `nesting` without an explicit require configuration. `makeResolverFromLegacyOptions()` then destructures the array to undefined option fields and returns a resolver containing only `NESTING_OVERRIDE.vm2`. Any attacker whose JavaScript is executed by a downstream `NodeVM` configured with `{nesting: true, require: []}` can load the host `vm2` module, create an inner `NodeVM` with an attacker-selected builtin allowlist, and execute commands as the host process. No equivalent plain-object validation exists in `makeResolverFromLegacyOptions()`.&lt;/p&gt;
&lt;p&gt;Array is converted into the vm2-only resolver:
https://github.com/patriksimek/vm2/blob/54b54b74a382577f0bcd0538c5bf99acdcd7f53b/lib/resolver-compat.js#L205-L226&lt;/p&gt;
&lt;p&gt;Nesting loader returns the host VM constructors:
https://github.com/patriksimek/vm2/blob/54b54b74a382577f0bcd0538c5bf99acdcd7f53b/lib/nodevm.js#L640-L645&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Preconditions:&lt;/p&gt;
&lt;p&gt;- The host creates `NodeVM` with truthy `nesting` and array-shaped `require`.
- The attacker can supply JavaScript executed by that `NodeVM`.&lt;/p&gt;
&lt;p&gt;```javascript
&amp;#39;use strict&amp;#39;;&lt;/p&gt;
&lt;p&gt;const {NodeVM} = require(&amp;#39;./index.js&amp;#39;);&lt;/p&gt;
&lt;p&gt;const outer = new NodeVM({nesting: true, require: []});
const result = outer.run(`
	const {NodeVM} = require(&amp;#39;vm2&amp;#39;);
	const inner = new NodeVM({require: {builtin: [&amp;#39;child_process&amp;#39;]}});
	module.exp…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-8hr7-r645-pc6w</guid>
    </item>
    <item>
      <title>WID-SEC-W-2026-2997 — vm2: Mehrere Schwachstellen</title>
      <link>https://cve.radiocsirt.org/vuln/wid-sec-w-2026-2997</link>
      <description>&lt;p&gt;Ein Angreifer kann mehrere Schwachstellen in vm2 ausnutzen, um Sicherheitsvorkehrungen zu umgehen, um Informationen offenzulegen, um Daten zu manipulieren, um einen Denial of Service Angriff durchzuführen und um beliebigen Programmcode auszuführen.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Ein Angreifer kann mehrere Schwachstellen in vm2 ausnutzen, um Sicherheitsvorkehrungen zu umgehen, um Informationen offenzulegen, um Daten zu manipulieren, um einen Denial of Service Angriff durchzuführen und um beliebigen Programmcode auszuführen.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/wid-sec-w-2026-2997</guid>
    </item>
  </channel>
</rss>
