Cloudflare コンテナの脆弱性:ストレージ層におけるデータの残存と安全ではないブロックの再利用

Cloudflare Containers Flaw Could Expose Data From Other Customers’ Workloads

2026/09/25 gbhackers — Cloudflare は、同社の Containers プラットフォームにおけるテナント間データ漏えいの脆弱性を修正した。この脆弱性を悪用する攻撃者は、同じインフラを利用する他の顧客の残存データを、自身のワークロードから復元できる可能性があった。影響を受けるのは、Cloudflare Sandboxes/Browser Rendering 内の Browser Run サービスであり、いずれも同じ基盤となるディスク実装を使用している。

脆弱性の原因と影響

2026年9月4日、Accomplish の Oren Yomtov が Cloudflare のバグ・バウンティ・プログラムを通じて、この問題を報告した。Cloudflare は、すべての対象環境で修正を完了しており、この脆弱性が悪意のある目的で悪用された証拠は確認されていないと発表し、顧客側で必要な対応はないとしている。

この脆弱性は、書き込み可能なコンテナのルートディスクに、Cloudflare が Linux Device Mapper のシン・プロビジョニング機能である dm-thin を使用していたことに起因する。それぞれの Cloudflare Container は専用の Firecracker 仮想マシン内で動作し、ルートディスクは /dev/vdc として提供され、影響を受けたインフラでは、複数の顧客アカウントで共有される 64 KB のブロックが使用されていた。

Cloudflare のストレージ設定では、skip_block_zeroing オプションが有効化されていたため、使用済みの物理ブロックが別のコンテナに再割り当てされる際、dm-thin による消去が行われなかった。その結果、新たに割り当てられたコンテナが未マッピング領域に少量のデータを書き込むと、dm-thin によって再利用対象の 64 KB のブロックが割り当てられる可能性があり、新たな書き込みによってブロックの一部は上書きされるものの、上書きされなかった領域には以前のテナントのデータが残存する可能性があった。

研究者は、ext4 の空き領域に 4 KB 境界で整列したブロックを書き込むことで、再割り当てされたブロックに残る 60 KB のデータを、ディスクの直接読み取りによって取得できる可能性を実証した。この問題によりテナント分離が破られ、Workers Paid アカウントを持つ顧客が、以前のワークロードによってファイルシステム上に残されたメタデータ/ディレクトリ一覧/SQLite データベースのページ/Chromium プロファイル/.env ファイル/認証情報に関連するデータを取得できる可能性があった。

この概念実証 (PoC) では、特定の被害者/顧客/ホスト/稼働中のディスクを指定してデータを取得することはできなかった。データが露出するかどうかは、ワークロードの配置と、使用済みディスクブロックがコンテナに再割り当てされるかどうかに依存し、別の顧客のデータの改変/稼働中のディスクへのアクセス/サービスの可用性への妨害もできなかった。

研究者は、本番環境での 6件の配置を対象とする管理下のテストで、別のテナントに由来する 2,700個の異なるディレクトリの inode (索引ノード) を特定した。さらに、4大陸にまたがる基盤ノード 22台のうち 20台で、24件の配置のうち 18件から残存データを確認し、ext4 ディレクトリのチェックサムを照合することで、別テナント由来のブロックと自身のテストデータを区別した。その上で、第三者のコンテンツ自体は報告せず、集計件数/オフセット/チェックサム/短縮したハッシュのみを報告した。

Cloudflare は、dm-thin プールから skip_block_zeroing オプションを削除し、コンテナへの割り当て前にブロックを消去するデフォルトの動作に戻した。さらに同社は、既存のコンテナディスクの廃止/ホストからのワークロードの退避/仮想マシンの再起動/設定変更前に作成されたキャッシュ済み OCI イメージ・スナップショットの削除を実施した。

ブロックのゼロクリアを再び有効にした後も、既存のマッピング済みブロック/キャッシュ済みレイヤにデータが残っている可能性があったため、これらの対応が必要となった。Cloudflare は、過去のディスク I/O テレメトリを調査した結果、研究者による活動と許可された社内検証に関連する活動以外は検出されなかったと述べている。

今回の事例は、マルチテナント環境の分離が、ハイパーバイザやコンテナからの脱出だけでなく、ストレージ層でのデータ残存や不適切なブロック再利用設定によっても損なわれる可能性を示している。