Exploit available for critical bug in VM2 JavaScript sandbox library

仮想化環境でコードを安全に実行するために複数のソフトウェアで使用される JavaScript サンドボックスである、人気のある VM2 ライブラリの最近明らかにされた重大な脆弱性に対する概念実証のエクスプロイト コードがリリースされました。

このライブラリは、信頼されていないコードを Node.js サーバー上の分離されたコンテキストで実行するように設計されています。コードの部分的な実行を許可し、システム リソースまたは外部データへの不正アクセスを防ぎます。

VM2 は、NPM パッケージ リポジトリ経由で毎月 1,600 万回以上ダウンロードされており、統合開発環境 (IDE) とコード エディター、サービスとしての機能 (FaaS) ソリューション、侵入テスト フレームワーク、セキュリティ ツール、およびさまざまなアプリケーションで使用されています。 JavaScript 関連の製品。

最大重大度レベル

CVE-2023-29017として追跡された、最近修正された脆弱性は最大の重大度スコア 10.0 を受け取りました。韓国科学技術院(KAIST)の研究チームによって発見されました。

VM2 ライブラリが、非同期エラーの発生時に「Error.prepareStackTrace」関数に渡されるホスト オブジェクトを不適切に処理していることを発見した研究者。

セキュリティの問題を悪用すると、サンドボックス保護を回避し、ホストでリモート コードを実行できるようになる可能性があります。

「脅威アクターは、サンドボックス保護をバイパスして、サンドボックスを実行しているホストでリモート コード実行権限を取得できます」と、 セキュリティ アドバイザリを読みます。

この問題は、3.9.14 以前の VM2 のすべてのバージョンに影響します。この問題は、ライブラリの新しいバージョン 3.9.15 のリリースで解決されました。回避策はありません。

利用可能なエクスプロイト コード

重大な脆弱性に対処する新しい VM2 バージョンのリリース後、KAIST の Ph.D 学生である Seongil Wi は、CVE-2023-29017 のエクスプロイト コードの 2 つのバリエーションを GitHub の秘密のリポジトリに公開しました。

公開された形式の PoC は、ホスト システム上に「フラグ」という名前の新しいファイルを作成するだけで、VM2 のサンドボックス保護をバイパスできることを証明し、コマンドを実行してホスト システム上に任意のファイルを作成できるようにします。

2022 年 10 月、VM2 は別の重大な欠陥CVE-2022-36067に悩まされ、攻撃者がサンドボックス環境を脱出し、ホスト システムでコマンドを実行することも可能になりました。この問題も、ライブラリの新しいバージョンのリリースで迅速に修正されました。