Wasmtimeの深刻なサンドボックスエスケープ脆弱性、最新リリースで修正
Wasmtimeランタイムに存在する2つの重大な欠陥により、悪意のあるWebAssemblyモジュールがサンドボックスを脱出できる可能性があります。サポート対象バージョン向けのパッチが提供されています。
英語の原文から自動翻訳されました。
Wasmtime WebAssemblyランタイムのメンテナーは、2026年10月19日および20日に緊急セキュリティパッチを公開し、2つの重大な脆弱性に対応しました。これらの欠陥はCVSSスコアで10点満点中9.9点と評価されており、悪意のあるモジュールがサンドボックスから脱出し、ホストシステム上で任意のコードを実行することを許す可能性があります。
何が起きたのか
Wasmtimeを維持管理しているBytecode Allianceは、WebAssemblyをマシンコードに変換するために使用されるデフォルトコンパイラであるCraneliftにおいて、2つの別々のバグを発見しました。最初の脆弱性(CVE-2026-115889)は、すべてのプロセッサアーキテクチャにおけるWasmtimeインストールに影響します。2番目の脆弱性(CVE-2026-115893)は、ARM64(aarch64)システムに特有です。どちらの問題も、攻撃者が細工されたWebAssemblyモジュールを脆弱なランタイムに供給した場合、サンドボックスエスケープを可能にします。
リスクが最も深刻なのは、ユーザーが提供するコードをコンパイルして実行するプラットフォーム、例えばサーバーレス計算環境などです。たとえば、FastlyのComputeプラットフォームなどのサービスは、顧客コードを隔離するためにWasmtimeに依存しています。アドバイザリでは具体的な被害者名や侵害後のアクセス詳細は記載されていませんが、ホスト全体の完全な侵害につながる可能性は極めて深刻です。2026年10月26日時点では、活発なエクスプロイトは報告されておらず、どちらの欠陥もCISAの既知のエクスプロイト済み脆弱性カタログには含まれていません。
サポート状況は露呈リスクにおいて重要な役割を果たします。現在セキュリティアップデートを受け取っているのは、36、48、49、50のリリースラインのみです。2026年8月20日にサポートが終了した24.x LTSブランチを含む古いラインは、修正プログラムを受け取りません。サポート外のバージョンを使用しているユーザーは、これらのリスクを軽減するためにサポート対象のラインへアップグレードする必要があります。
仕組み
CVE-2026-115889は、Craneliftが関数内の値を追跡する方法における整数オーバーフローに起因しています。43.0.0以前のバージョンでは、コンパイラはこの追跡番号を24ビットフィールドに格納していました。関数が十分に大きく複雑でこの制限を超えた場合、リリースビルドでは値がサイレントにオーバーフローしていました。これによりCraneliftは誤った値を参照し、型混淆を引き起こし、サンドボックス制約に違反するマシンコードを生成していました。修正ではこれらのフィールドを32ビットに広げました。これは元々パフォーマンス向上のために2月にマージされた変更ですが、セキュリティ目的で10月19日に36.x LTSラインへバックポートされました。
ARM64特有の欠陥であるCVE-2026-115893は、多方向分岐を処理するbr_table命令に関係しています。インデックスがテーブル範囲外の場合、ランタイムはデフォルトターゲットへジャンプします。ARM64では、Craneliftは約1 MiBという限られた到達距離を持つ分岐命令を用いてこれを実装していました。もしbr_tableが約256,000以上のターゲットを含んでいた場合、ジャンプテーブルがこの範囲を超え、分岐が意図しないメモリ位置を指すようになりました。これにより、細工されたモジュールは実行を任意のコードへリダイレクトすることができました。パッチでは制御フローを変更し、範囲外のインデックスをジャンプテーブル自体を通じてルーティングするようにし、br_tableのサイズを65,520ターゲットに制限しています。
主要な詳細
- CVE-2026-115889はすべてのアーキテクチャに影響し、CVE-2026-115893はARM64システムのみに影響します。
- 両方の脆弱性はクリティカルな深刻度を示すCVSSスコア9.9を持っています。
- 修正済みバージョンには36.0.19、48.0.7、49.0.4、および50.0.0が含まれます。
- 24.x LTSラインはサポート外であり、パッチは提供されませんでした。ユーザーは移行する必要があります。
- GitHubにレビュー済みのエントリがないため、DependabotはARM64の欠陥についてアラートを発しない可能性があります。
- Spinフレームワークのバージョン4.2.4は、10月21日にWasmtime 50.0.0へ更新されました。
なぜ重要なのか
信頼できないWebAssemblyを実行するプラットフォームを構築しているエンジニアにとって、これらのバグは分離メカニズムの根本的な失敗を表しています。このようなアーキテクチャにおいて、サンドボクシングは主要な防御手段です。もしモジュールが脱出できれば、ホストプロセスの特権を取得し、データの流出、横方向の移動、またはサービスの中断を可能にする可能性があります。一つのバグが2020年から存在していたという事実は、特にアーキテクチャ固有のエッジケースにおいて、低レベルのコンパイロロジックを監査することの難しさを浮き彫りにしています。
さらに、Dependabotのような自動化ツールへの依存は、偽りの安心感を与える可能性があります。GitHubはアラートトリガーのためにレビュー済みのエントリを必要としており、10月下旬時点でARM64の欠陥にはそれがなかったため、一部のチームは自らの露呈状況を認識していないかもしれません。これは、特にランタイムなどの重要なインフラストラクチャコンポーネントについて、公式ベンダーのアドバイザリに対して依存ツリーを手動で検証する必要性を強調しています。
実施できること
- 現在のWasmtimeバージョンを特定し、アドバイザリに記載された影響範囲に含まれるかを確認してください。
- リリースラインに応じて、36.0.19、48.0.7、49.0.4、または50.0.0へアップグレードしてください。
- Wasmtimeをライブラリとして使用している場合は、パッチ適用済みバージョンでアプリケーションを再ビルドしてください。CLIツールを更新するだけでは不十分です。
- 将来のセキュリティ修正を受け取らない24.xなどのサポート外リリースラインからは移行してください。
cargo-auditを実行し、依存関係ロックファイル内でRUSTSEC-2026-0380およびRUSTSEC-2026-0379を確認してください。- Wasmtimeを直接管理していない場合は、Spinなどのダウンストリームフレームワークからの更新を監視してください。



