30秒で判断
- 対応すべき人:
vm2(npm)を使って信頼できないコードやユーザー入力を隔離実行しているアプリ・サービスの運用者(3.11.0 未満) - 対応不要な人: vm2 を使用していない / すでに 3.11.0 以降を使用中 / vm2 に信頼済みコードしか渡していない
- 確認方法:
npm ls vm2で依存ツリー内のバージョンを確認し、3.11.0 未満なら対象
概要
vm2 は Node.js 用のサンドボックス(vm/sandbox)ライブラリで、信頼できないコードを隔離して実行する用途に広く使われてきました。本脆弱性は、NodeVM の builtin 許可リストが module ビルトインの許可時(* ワイルドカードでの許可を含む)に回避可能になるというものです。
module ビルトインは Node の Module._load() を露出しています。これはモジュール名を指定してホストコンテキストで直接ロードする機能であり、vm2 のビルトイン制限を完全にバイパスします。結果として、サンドボックス内のコードが child_process のような除外対象のビルトインを読み込み、リモートコード実行(RCE)に至ります。
本件は同時に公開された vm2 の脆弱性クラスタの一つで、ホストオブジェクトの取得(CVE-2026-43997 / CVE-2026-44006, CVSS 10.0)やホスト側プロトタイプの汚染(CVE-2026-44005, CVSS 10.0)を起点とする脱出も併せて修正されています。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 9.9 |
| 深刻度 | Critical |
| CWE | CWE-863(不正な認可) / CWE-829(信頼できない制御領域からの機能組み込み) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 想定される影響 | 機密性・完全性・可用性の広範な侵害(ホスト側 RCE) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| vm2 | patriksimek (npm) | < 3.11.0 |
修正バージョンと回避策
vm23.11.0 以降へアップデートしてください。- vm2 はメンテナンス終了(EOL)が表明されているため、
isolated-vmなど活発にメンテナンスされている代替への移行検討を推奨します。 - 直接依存だけでなく推移的依存(transitive dependency)に含まれるケースがあるため、
npm ls vm2で依存ツリー全体を確認してください。
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
