🛡️ CVE-2026-47140 — vm2

🔴 CVSS 10.0 — Critical ✅ No Known Exploit CWE-693 NVD
10.0
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

NodeVM builtin denylist bypass via process and inspector/promises allows host code execution

Summary

NodeVM blocks several dangerous Node.js builtins such as module, worker_threads, cluster, vm, repl, and inspector.

However, the denylist misses process and inspector/promises. Both can be used from sandboxed code to reach host-side execution primitives.

This allows sandboxed code to bypass the intended builtin restrictions and execute code in the host process.

Details

The dangerous builtin denylist is defined in lib/builtin.js. This list does not include:

```text

process

inspector/promises

```

Non-denied builtins are exposed to the sandbox through:

```js

builtins.set(key, special ? special : vm => vm.readonly(hostRequire(key)));

```

Because of this, sandboxed code can bypass the expected restrictions in two ways:

1. require('process').getBuiltinModule('child_process') reloads child_process, even when child_process is excluded.

2. require('inspector/promises') exposes the Inspector protocol and can call Runtime.evaluate in the host process.

PoC

Tested on:

```text

vm2: 3.11.2

Node.js: v25.9.0

```

Run from the vm2 repository root:

```bash

node poc/dangerous-builtin-denylist-rce.js

```

[dangerous-builtin-denylist-rce.js](https://github.com/user-attachments/files/27570113/dangerous-builtin-denylist-rce.js)

The PoC first confirms the intended restrictions work:

```text

require("inspector"): BLOCKED

require("child_process"): BLOCKED

```

Then it bypasses them:

```text

require("process").getBuiltinModule("child_process").execFileSync(...)

```

This spawns a host child process. It also confirms:

```text

require("inspector/promises").Session().post("Runtime.evaluate", ...)

```

This evaluates JavaScript in the host process.

<img width="858" height="766" alt="Screenshot 2026-05-10 at 11 53 33 AM" src="https://github.com/user-attachments/assets/7614aecb-5ffd-4c41-bfe8-e1fcb3b1bb59" />

Impact

An attacker who can run untrusted JavaScript inside NodeVM with affected builtin settings can escape the sandbox and execute arbitrary code in the host process.

This can lead to full compromise of the application process, including reading files, writing files, spawning processes, and accessing host environment secrets.

(This is not reachable with the default NodeVM configuration where require is disabled or no affected builtins are allowed. It affects applications that allow process, inspector/promises, or the wildcard "*" in require.builtin.)

Suggested fix

Add process and inspector/promises to the dangerous builtin blocklist.

Also consider blocking dangerous builtin families by prefix, for example blocking both:

```text

inspector

inspector/*

```

instead of only exact module names.

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is changed, meaning a successful attack can affect components beyond the vulnerable one. Rated impact: confidentiality high, integrity high, availability high.

Weakness class

CVE-2026-47140 is classified as CWE-693: Protection Mechanism Failure. A protection exists but does not cover the case at hand, so it can be worked around.

Affected software

CVE-2026-47140 is recorded against 2 packages.

  • unknown
  • vm2

Timeline and source

Published on 12 June 2026 and last revised on 17 June 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

github.com
github.com
github.com
github.com

CVE-2026-47140 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity CRITICAL
CVSS Score 10.0
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CWE CWE-693
Public Exploit ✅ No
Source NVD
Published 2026-06-12
Updated 2026-08-12
Modified 2026-06-17
Fix URL N/A

Affected Packages

Software From version Fixed in
unknown
vm2

Similar Threats

Exploit Protection

Are you running vm2?

CVE-2026-47140 carries CVSS 10.0 Critical rating. BotEraser checks your installation against this and other known CVE records, and blocks IPs associated with exploit activity.

Check My Site For CVE-2026-47140 →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2026