Critical Spin Framework Flaw: Sandbox Escape Vulnerability Exposed (CVE-2024-32980)
2024/05/09 SecurityOnline — 先日に Spin Project が発表したのは、WebAssembly を使用して安全で高速なクラウド・マイクロサービスを構築/実行するために設計された、オープンソースの Spin Framework におけるキュリティ勧告である。それは、深刻な脆弱性 CVE-2024-32980 (CVSS:9.1) であり、きわめて高いリスクが懸念されるものだ。この脆弱性は、特別にコンフィグレーションされた Spin アプリケーションにおいて、ネットワーク・サンドボックス・エスケープの可能性を生じるものだ。

脆弱性 CVE-2024-32980 は、アプリケーションが URL 権限を指定せずに内部リクエストを行うという、特定の条件下において Spin アプリケーションに影響を及ぼす。攻撃者は Host HTTP ヘッダーを操作し、対象アプリケーションが任意のホストにリクエストを行うよう誘導することで、この脆弱性を悪用できる。この脆弱性の影響を受けるシステムは、不正なデータ・アクセスやサービスの中断などのセキュリティ侵害にさらされる可能性がある。
アプリケーションは、以下の状況で脆弱になる:
- URL ベースのルーティング:Spin のランタイムをホストする環境は、Host ヘッダーではなく、 リクエスト URL に基づいてリクエストをルーティングする必要がある。
- allowed_outbound_hostsの設定:リクエストを処理するアプリケーションのコンポーネントは、”allowed_outbound_hosts” リストに “self” を含む必要がある。
- 送信リクエストの処理: インバウンド・リクエストを受け取ると、影響を受けるコンポーネントは、URL にホスト名やポートが含まれていないアウトバウンド・リクエストを発行するかもしれない。
これらの条件がすべて満たされ、ホスト名が明示的に提供されない場合には、 Spin は受信リクエストの Host ヘッダーを、送信リクエストの UR Lの権威部分として、誤って使用してしまう。
サーバーレス製品である Fermyon の Fermyon Cloud でホストされているアプリケーションが、この脆弱性の影響を受けない点は注目に値する。Fermyon Cloud のコンフィグレーションと運用モデルは、このような悪用シナリオを本質的に防いでいる。
Spin は、バージョン 2.4.3 をリリースし、この脆弱性に迅速に対応した。Spin Framework のユーザーは、潜在的な悪用からアプリケーションを保護するために、最新バージョンへのアップデートを急ぐ必要がある。
直ちにアップグレードできない場合を想定して、Spin プロジェクトは、いくつかの回避策を用意している:
- Host ヘッダーのサニタイズ:リクエストがルーティングされるアプリケーションと一致するよう、Host ヘッダーが適切にサニタイズされていることを確認する。
- URL にホスト名を明示: URL にホスト名を常に含めるよう、発信リクエストを修正し、”allowed_outbound_hosts” リスト “self” ではなく、このホスト名を使用する。
- アプリケーション内サービスチェーン: 特に Spin バージョン 2.4 の環境では、アプリケーション内リクエストの処理に、アプリケーション内サービスチェーンを利用する。
Spin Framework に、脆弱性 CVE-2024-32980 (CVSS:9.1) が発生とのことなので、ご利用のチームは、お気をつけください。GitHub には、「Spin は、WebAssembly を使用して、高速かつ安全なコンポーネント指向のクラウド・マイクロサービスを、構築/実行するための OSS フレームワークである。WebAssembly マイクロサービスを始めるための、最も簡単な方法を目指しており、WebAssembly コンポーネント モデルと Wasmtime ランタイムの最新開発を利用している」と記されています。同じく 5月9日付で、「Qt Framework の脆弱性 CVE-2024-33861 が FIX:影響は限定的だが油断は禁物」という記事もポストされています。よろしければ、Framework で検索と併せて、ご参照ください。
You must be logged in to post a comment.