概要
vm2 は Node.js 上でサンドボックス環境を提供する npm パッケージで、信頼できないコードの安全な実行を目的として広く利用されています。
本脆弱性は、NodeVM の設定オプション nesting: true を有効にした場合に require: false の制約がバイパスされる問題です。nesting: true は NodeVM 内部でさらに子の NodeVM を生成することを許可するオプションですが、この設定が有効な場合、本来禁止されているはずの require 呼び出しが子VMのコンテキストを経由して利用可能となります。
この結果、攻撃者はサンドボックスの隔離を完全に脱出し、ホストOS上で任意のコマンドを実行できます。CVSS 9.8(Critical)と評価されており、vm2 を利用してユーザー入力のコードを実行しているサービスでは即時対応が必要です。
本脆弱性は同日に公開された vm2 の Critical サンドボックスエスケープ CVE 5件のうちの1件であり、vm2 の設計上の限界が複数の経路から指摘されています。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 9.8 |
| 深刻度 | Critical |
| CWE | CWE-265 (権限問題) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | 不要 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| vm2 | npm | < 3.11.1 |
修正バージョンと回避策
- 修正バージョン: vm2 3.11.1 にアップデートしてください
- 回避策:
nesting: trueオプションの使用を避けてください。NodeVM のコンストラクタでnestingを明示的にfalseに設定するか、省略してください - 根本的対策: vm2 は過去に複数のサンドボックスエスケープが報告されています。セキュリティ要件が高い環境では、vm2 の代替として isolated-vm 等のより堅牢なサンドボックスソリューションへの移行を検討してください
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
