Sandbox

セキュリティ研究者は、VM2 サンドボックスを実行しているホストで安全でないコードを実行できるようにする、さらに別のサンドボックス エスケープの概念実証 (PoC) エクスプロイトをリリースしました。

VM2 は、信頼できないコードを隔離された環境で実行およびテストするために幅広いソフトウェア ツールで使用される特殊な JavaScript サンドボックスであり、コードがホストのシステム リソースまたは外部データにアクセスするのを防ぎます。

このライブラリは、統合開発環境 (IDE)、コード エディター、セキュリティ ツール、およびさまざまな侵入テスト フレームワークでよく見られます。 NPM パッケージ リポジトリでは、1 か月あたり数百万回のダウンロードがカウントされます。

VM2 では、過去 2 週間に複数の重要なサンドボックス エスケープの開示がさまざまなセキュリティ研究者によって発見されており、攻撃者がサンドボックス環境の制約の外で悪意のあるコードを実行できるようになっています。

CVE-2023-29017として追跡された最初のサンドボックス エスケープの欠陥は、2 週間前に Seongil Wi によって発見され、最新の 2 つ ( CVE-2023-29199および CVE-2023-30547) は SeungHyun Lee によって発見されました。

Oxeye の研究者は、2022 年 10 月に CVE-2022-36067 として追跡される別のサンドボックス エスケープを発見しました

サンドボックス エスケープの欠陥

最新の脆弱性は、 CVE-2023-30547 (CVSS スコア: 9.8 – 重大) として追跡されており、攻撃者が「handleException()」内でサニタイズされていないホスト例外を発生させることを可能にする例外サニタイズ欠陥です。

この関数は、サンドボックス内でキャッチされた例外をサニタイズして、ホストに関する情報が漏洩するのを防ぐことを目的としています。ただし、攻撃者がサニタイズされていないホスト例外をスローするカスタム「getPrototypeOf()」プロキシ ハンドラを設定すると、「handleException」関数はサニタイズに失敗します。

これにより、攻撃者は「ホスト機能にアクセス」し、サンドボックスの制限を回避してホスト コンテキストで任意のコードを実行し、潜在的に重大な攻撃を行うことができます。

この脆弱性は、韓国科学技術院 (KAIST) のセキュリティ アナリストであるSeungHyun Leeによって発見され、3.9.16 以前のすべてのライブラリ バージョンに影響があることがわかりました。

研究者は、ホスト上に「pwned」という名前のファイルを作成する攻撃の実現可能性を実証するために、GitHub リポジトリで概念実証(PoC) エクスプロイトも公開しています。

研究者が公開したPoC
研究者が公開したPoC (GitHub)

プロジェクトに VM2 ライブラリが組み込まれているすべてのユーザー、パッケージ管理者、およびソフトウェア開発者は、セキュリティ上の欠陥に対処するバージョン 3.9.17 にできるだけ早くアップグレードすることをお勧めします。

残念ながら、ほとんどのオープンソース ソフトウェア プロジェクトに影響を与えるサプライ チェーンの複雑さは、影響を受けるツール全体で VM2 のアップグレードを遅らせる可能性があります。 PoC が一般公開されていることと相まって、多くのユーザーが長期間にわたってリスクにさらされたままになる可能性があります。

2 つのサンドボックス エスケープの欠陥がまったく新しい脆弱性なのか、それとも Wi によって発見された元の CVE-2023-29017 バグに対する不完全なパッチが原因なのかは不明です。

はこれらのバグについて Wi と Lee に質問しており、回答があれば記事を更新します。