人気のNode.jsサンドボックス化ライブラリvm2に存在する重大な脆弱性により、攻撃者がサンドボックスを脱出し、ホスト上で任意のシステムコマンドを実行できるようになります。
CVE-2026-22709として追跡されているこの問題は、vm2の3.10.0以前(3.10.0を含む)に影響し、3.10.2で修正されています。
セキュリティ研究者patriksimek が公開した アドバイザリ(GHSA-99p7-6v5w-7xg8)では、vm2におけるPromiseコールバックのサニタイズが回避可能であり、信頼できないサンドボックス内コードがホスト上での完全なコード実行へとつながることが説明されています。
この脆弱性は、サンドボックス内のPromiseコールバックのサニタイズが一貫していないことに起因します。
async関数の戻り値はグローバルなPromiseオブジェクトであるため、攻撃者はこの隙を悪用して、意図されたサンドボックス制限の外側で任意のコードを実行できます。
提供された概念実証(PoC)は、その影響を明確に示しています:
これはvm2サンドボックスの隔離保証を完全に破壊し、基盤となるシステム上での任意コマンド実行を可能にします。
この脆弱性は、以下のCVSS v3.1ベクターでCritical(重大)と評価されています:
VM2を使用して信頼できない、またはユーザー提供のコードを実行するあらゆるアプリケーションは高リスクです。攻撃が成功すると、攻撃者はNode.jsプロセスの権限でシステムコマンドを実行でき、データ窃取、ラテラルムーブメント、またはサーバーの完全な乗っ取りにつながる可能性があります。
開発者は直ちに3.10.2以降へアップグレードし、信頼できない入力にさらされている未パッチのインスタンスではサンドボックス脱出が起こり得るものとして扱うべきです。
隔離のためにvm2に依存している管理者および開発者は、パッチ適用を最優先し、疑わしいサンドボックス内コードの活動がないかログを確認してください。