CVE-2026-23830
SandboxJS は、保護されていない AsyncFunction コンストラクタを介したサンドボックスエスケープが可能です
- 公開済み
- 2026/01/27
- 更新済み
- 2026/01/28
- CNA の割り当て
- GitHub_M
- 観察された証拠
- 2026/08/25
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H低 · 今後 30 日間
- パーセンタイル
- 65.5%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
SandboxJSは、JavaScriptサンドボックス化ライブラリです。0.8.26より前のバージョンには、`AsyncFunction`が`SandboxFunction`内で分離されていないことに起因するサンドボックスエスケープの脆弱性があります。このライブラリは、グローバルな`Function`コンストラクタを安全なサンドボックス化バージョン(`SandboxFunction`)に置き換えることで、コード実行のサンドボックス化を試みます。これは`utils.ts`内で、ルックアップに使用されるマップ内の`Function`を`sandboxFunction`にマッピングすることで処理されます。しかし、バージョン0.8.26より前では、ライブラリは`AsyncFunction`、`GeneratorFunction`、`AsyncGeneratorFunction`のマッピングを含んでいませんでした。これらのコンストラクタはグローバルプロパティではありませんが、インスタンスの`.constructor`プロパティを介してアクセスできます(例:`(async () => {}).constructor`)。`executor.ts`では、プロパティアクセスが処理されます。サンドボックス内で実行中のコードが非同期関数(サンドボックスが作成を許可している)の`.constructor`にアクセスすると、`executor`はプロパティ値を取得します。`AsyncFunction`は安全な置換マップに含まれていなかったため、`executor`は実際のネイティブなホスト`AsyncFunction`コンストラクタを返します。JavaScriptの関数用コンストラクタ(`Function`、`AsyncFunction`など)は、グローバルスコープで実行される関数を作成します。ホストの`AsyncFunction`コンストラクタを取得することで、攻撃者はサンドボックスコンテキストの完全に外側で実行される新しい非同期関数を作成でき、すべての制限をバイパスしてホスト環境への完全なアクセス(リモートコード実行)を得ることができます。バージョン0.8.26でこの脆弱性は修正されています。
ソース
1- CVE-2026-23830-SandBreakエクスプロイト
CVE-2026-23830(SandboxJSエスケープ)用のエクスプロイトペイロードを生成・配信し、ブラインドOOB外部送信とローカルcalc PoCのモードを備えています。HTTP/HTTPSリスナーをサポートし、圧縮されたJavaScriptペイロードを生成します。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。