AIプロジェクトで使われる人気のJavaScriptサンドボックスに、深刻な脆弱性が修正

この型混同の脆弱性により、ゲストからホストへのサンドボックスエスケープが可能になり、リモートコード実行につながる恐れがある

分離されたプロセス内でJavaScriptコードを実行するためのライブラリ「isolated-vm」に、深刻なサンドボックスエスケープの脆弱性が発見され、修正されました。この脆弱性が悪用された場合、攻撃者がホストの制御フローを乗っ取ることが可能になり、リモートコード実行につながる恐れがあります。

isolated-vmは週に100万回以上ダウンロードされているほか、n8n、Sim.ai、Mastra、Activepiecesといったオープンソースの AIエージェント自動化フレームワークでも、直接的あるいはオプションのコンポーネントとして利用されています。isolated-vmの目的は、ChromeやNode.jsのJavaScriptエンジンであるV8のIsolate機能を用いて作成されたサンドボックス内で、信頼できないユーザー提供のJavaScriptコードを実行することです。

「信頼できないJavaScriptを安全に実行することは、Node.jsエコシステムにおける最も難しい課題の一つであり、その歴史は失敗の連続です」と、アプリケーションセキュリティ企業Edor Labsの主任研究者であるCris Staicu氏は脆弱性を発見した際にこう述べています。「長年デフォルトの選択肢だったvm2は、非推奨になるまでに20件以上の文書化された脱出事例を積み重ねてきました」。

しかし、isolated-vmは異なるアーキテクチャ上のアプローチを採用しており、Google Chromeが異なるブラウザタブで動作するコードを分離する際に使うのと同じプリミティブである、V8のIsolateに依存しています。これは強力かつ十分にテストされた仕組みであり、ブラウザのセキュリティにとって不可欠なものです。

しかし、Endor Labsが型混同(type confusion)と説明するこの脆弱性は、分離の仕組み自体ではなく、データをV8に受け渡すライブラリのC++グルーコードの中に存在していました。

「本来堅牢であるはずの構成要素が、それを取り囲むバインディング層によって損なわれていました」とStaicu氏は述べています。「AIエージェントや自動化プラットフォームが信頼できないコードの実行を主流の要件にしていく中で、サンドボックスを取り巻くバインディング層は、最優先でセキュリティの注意を払うべき対象だと言えます」。

isolated-vmの開発者は、今月初めにリリースされたバージョン7.0.1と6.2.0で、この脆弱性を速やかに修正しました。ただし、セキュリティアドバイザリとこの脆弱性の詳細は、本日公開されたものです。

翻訳元: https://www.csoonline.com/article/4212151/critical-flaw-patched-in-popular-javascript-sandbox-used-in-ai-projects.html

本記事は csoonline.com の記事を翻訳・要約したものです。