PT-2026-38389 · Npm · Vm2
Bugbunny-Research
·
Published
2026-05-01
·
Updated
2026-06-04
·
CVE-2026-43998
CVSS v3.1
8.5
High
| Vector | AV: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
Affected Products
Vm2