PT-2026-38389 · Npm · Vm2

Bugbunny-Research

·

Published

2026-05-01

·

Updated

2026-06-04

·

CVE-2026-43998

CVSS v3.1

8.5

High

VectorAV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions vm2 versions prior to 3.11.0
Description NodeVM's require.root path restriction can be bypassed using filesystem symlinks, allowing sandboxed code to load modules from outside the allowed root directory in the host context. This occurs because path validation uses path.resolve(), which does not dereference symlinks, while module loading uses Node's native require() function, which does. An attacker can exploit this discrepancy to load arbitrary host-realm modules and achieve remote code execution. The issue is specifically located in the isPathAllowed() and loadJS() functions within lib/resolver-compat.js, and the resolve() function in lib/filesystem.js.
Recommendations Update to version 3.11.0. As a temporary workaround, restrict the use of filesystem symlinks within the allowed root directory to prevent unauthorized module loading.

Exploit

Fix

Link Following

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

BDU:2026-06911
CVE-2026-43998
GHSA-CP6G-6699-WX9C

Affected Products

Vm2