製品・ソフトウェアに関する情報
vm2 projectのvm2におけるリンク解釈に関する脆弱性
Title vm2 projectのvm2におけるリンク解釈に関する脆弱性
Summary

vm2はNode.js向けのオープンソースの仮想マシン/サンドボックスです。バージョン3.10.5では、NodeVMのrequire.rootパス制限がファイルシステムのシンボリックリンクを使って回避可能であり、サンドボックス内のコードはホスト環境の許可されたルートディレクトリ外のモジュールを読み込むことができます。これはパスの検証にpath.resolve()(シンボリックリンクを解決しない)を使用し、モジュールの読み込みにはNodeのネイティブrequire()(シンボリックリンクを解決する)を使用しているためです。攻撃者は任意のホスト側モジュールを読み込み、リモートコード実行を実現できる可能性があります。この脆弱性はバージョン3.11.0で修正されました。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃により、他のソフトウェアにも影響が及ぶ可能性があります。 
Solution

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

Publication Date May 13, 2026, midnight
Registration Date May 18, 2026, 12:13 p.m.
Last Update May 18, 2026, 12:13 p.m.
CVSS3.0 : 重要
Score 8.5
Vector CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Affected System
vm2 project
vm2 3.10.5
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
No Changed Details Date of change
1 [2026年05月18日]
  掲載
May 18, 2026, 12:13 p.m.

NVD Vulnerability Information
CVE-2026-43998
Summary

vm2 is an open source vm/sandbox for Node.js. In 3.10.5, 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 host context. Because path validation uses path.resolve() (which does not dereference symlinks) but module loading uses Node's native require() (which does), an attacker can load arbitrary host-realm modules and achieve remote code execution. This vulnerability is fixed in 3.11.0.

Publication Date May 14, 2026, 3:16 a.m.
Registration Date May 15, 2026, 4:21 a.m.
Last Update May 15, 2026, 12:36 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:a:vm2_project:vm2:3.10.5:*:*:*:*:node.js:*:*
Related information, measures and tools
Common Vulnerabilities List