つみかさね

CVE-2026-43999

Critical(9.9)

vm2のサンドボックス脱出RCE CVE-2026-43999:影響範囲と対応方法

公開日: 2026-08-07データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
vm2patriksimek (npm)< 3.11.0

対応ガイド

high|対応必須セキュリティ修正影響: 広範

推奨アクション

  1. 1npm ls vm2 で依存ツリー内のバージョンを確認する
  2. 2vm2 を 3.11.0 以降へアップデートする
  3. 3長期的には isolated-vm 等の代替への移行を検討する

影響対象

vm2 でコードを隔離実行しているNode.jsアプリ運用者

対応不要な人

  • vm2 を使用していない
  • すでに 3.11.0 以降を使用中
  • vm2 に信頼済みのコードしか渡していない

補足

  • -vm2 はメンテナンス終了が表明されているため、更新だけでなく移行方針の検討も推奨されます
CVEvm2Node.jsサンドボックス脱出RCE

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
CWECWE-863(不正な認可) / CWE-829(信頼できない制御領域からの機能組み込み)
攻撃元区分ネットワーク
攻撃条件の複雑さ
想定される影響機密性・完全性・可用性の広範な侵害(ホスト側 RCE)

影響を受けるソフトウェア

製品ベンダー影響バージョン
vm2patriksimek (npm)< 3.11.0

修正バージョンと回避策

  • vm2 3.11.0 以降へアップデートしてください。
  • vm2 はメンテナンス終了(EOL)が表明されているため、isolated-vm など活発にメンテナンスされている代替への移行検討を推奨します。
  • 直接依存だけでなく推移的依存(transitive dependency)に含まれるケースがあるため、npm ls vm2 で依存ツリー全体を確認してください。

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。