
Node.jsは、ブラウザ以外(サーバーサイド)でJavaScriptを動かすためのオープンソースの実行環境(ランタイム)です。
Google Chromeの高速なV8 JavaScriptエンジンを採用し、ノンブロッキングI/Oにより、チャットやストリーミングなど高速なリアルタイムアプリやWebサーバ構築に多く活用されています。
vm2はNode.jsで信頼できないJavaScriptコードを安全に実行するための、高度なサンドボックス(仮想マシン)ライブラリです。
Node.jsの組み込みvmモジュールを基盤とし、安全な環境でコードを実行してホストマシンへのアクセスを防ぐ設計でしたが、深刻な脆弱性が複数見つかっています。
このNode.jsのvm2において、また新たな脆弱性が確認されています。
- CVE-2026-26956
これは、RCE(リモートコード実行)の脆弱性です。
vm2はサンドボックスを実現する機構で、本来は投入した機構がサンドボックス内で実行されるために安全性を確保できることが期待されるものなのですが、この脆弱性が存在する状態においては、なんとサンドボックスの外側であるホスト環境で任意のコマンドを実行できてしまいます。
問題の存在が確認できているのは、Node.js 25.6.1環境で、vm2バージョン3.10.4を使用する場合です。
しかしこれ以外の環境においても、問題は発現するかもしれません。
この脆弱性は、例外処理の実装が妥当ではないことに起因したものでした。
正常に処理されるケースではなくエラー処理に類する機構の部分で意図しない動きとなってしまうのはよく見られる傾向です。
安全のために使用しているサンドボックスの機構を利用している状況で、脆弱性でホスト側絵リモートコード実行を許してしまうのは残念過ぎます。
対策はいつも通りです。
適切な新しいバージョンを利用することで、この脆弱性がない状態にすることができます。
今回の場合はvm2を3.10.5以降に更新する必要があります。ちなみに、2026/5/7時点での最新バージョンは3.11.2です。
残念なことになる前に、環境を健全化しましょう。
WASM Sandbox Escape (Node 25 only)
https://github.com/patriksimek/vm2/security/advisories/GHSA-ffh4-j6h5-pg66
| この記事をシェア |
|---|