Cloudflare Workersで同居環境からJWTを盗み出すSpectre攻撃が判明 毎秒12ビットで漏えい、対策は導入済み
要点
-
Cloudflare Workersの本番環境において、同一プロセス内に同居する他テナントのメモリからJWT(認証トークン)を毎秒最大12ビットで読み取るリモートSpectre攻撃が実証された。
-
2021年に発表された先行研究と比べて漏えい速度は約360倍に高速化し、99.16%の精度でデータ読み出しが行われた。
-
攻撃にはWebSocketによる時間測定やDurable Objectsによる長時間のプロセス維持、I/O負荷を利用した検知回避手法が用いられた。
-
実証実験は研究者の管理下で実施され顧客データへの影響はなく、Cloudflareは多層的な防御策を導入してすでに本番環境で緩和済みとしている。
-
セキュリティ研究者チームが、エッジコンピューティング環境「Cloudflare Workers」において、同一プロセス上で動作する他テナントのメモリから認証情報を読み取るリモートSpectre攻撃の詳細を明らかにした。
-
2026年8月19日に公開された研究論文によると、本番環境を用いた実験において、標的のメモリ内に配置されたJWT(JSON Web Token)を毎秒最大12ビットの速度で漏えいさせることに成功したという。
-
Cloudflareは、動的プロセス分離機能の改良やハードウェア保護機構を用いたメモリ分離など複数の対策を講じることで、本番環境における攻撃はすでに緩和されたと説明している。また、過去3年間にわたり本脆弱性が実際に悪用された痕跡は確認されていないとしている。
本番環境で毎秒12ビットの漏えいを実証、先行研究の360倍に高速化
Spectre攻撃は、CPUが処理を先回りして実行する投機的実行の挙動を利用し、アクセス権のないメモリ領域の情報を読み取るサイドチャネル攻撃の一種である。
今回の研究では、研究者が制御する攻撃者用Workerと被害者用WorkerをCloudflare Workersの本番環境上で同一プロセス内に同居させ、エンドツーエンドの実証実験が行われた。被害者側のメモリに意図的に配置されたJWT(Web認証などで広く使われる電子署名付きトークン)を読み出したところ、99.16%の精度で毎秒最大12ビットの漏えいを記録した。これは、2021年に実証された先行研究(毎分2ビット)と比較して約360倍の速度にあたるという。なお、実験において一般の顧客データへのアクセスは行われていない。
実証テストはAMD EPYCのZen 2およびZen 3プロセッサを搭載したLinux本番サーバーで実施された。CPU使用率が10%から25%に落ち着く夜間に測定が行われたが、システム負荷が高い状況でも漏えい速度は低下するものの攻撃自体は可能であったと報告されている。
プロセス共有アーキテクチャと攻撃の成立条件
Cloudflare Workersは起動時の遅延(レイテンシ)を削減するため、厳格なOSプロセス分離ではなく、同一のOSプロセス内でJavaScriptエンジン「V8」の独立環境「V8 isolate」を用いてマルチテナント実行を行っている。
しかし、同一プロセス内でメモリを共有しているため、プロセス内で投機的読み取りが発生するとテナントをまたいだデータ漏えいにつながるリスクが存在する。
今回の攻撃モデルにおいて、攻撃者は自身のisolate内で通常の正当なコードを実行するだけで成立する。攻撃者がネイティブコードを実行することは前提としておらず、V8のソフトウェア的な脆弱性やサンドボックス脱出機能にも依存しないのが特徴である。
WebSocketとDurable Objectsによる検知回避
Cloudflare Workersではタイマーの凍結や粗粒化によって時間計測を制限し、共有メモリやマルチスレッド機能もスクリプトに公開していない。
これに対し研究チームは、WebSocket通信を外部からの時間計測ソース(リモートタイマー)として利用した。さらに、状態を保持する「Durable Objects」を活用し、通常は短命なWorker isolateの稼働時間を5時間から20時間以上にわたって維持できることを突き止めた。
Cloudflareは不審なスクリプトを呼び出し終了後に別プロセスへ隔離する動的プロセス分離機構「DyPrIs(Dynamic Process Isolation)」を導入していた。しかし、長時間稼働するDurable Objectの処理では、この分離が行われる前に実行を継続できたという。
加えて、WebSocketによる大量のI/O処理によって命令TLB(CPU内で仮想アドレスから物理アドレスへの命令変換を高速化するキャッシュ)の活動が増加し、DyPrIsの検知基準である分岐予測ミスシグナルが検知閾値以下に抑え込まれる現象も確認された。Cloudflareはこの問題を実装上の制限と説明しているが、研究チームは検知方式自体の根本的な限界であり、実行中にリアルタイムで堅牢な検知を行う必要があると指摘している。
ハードウェア保護キー(MPK)などによる多層防御を配備
Cloudflareは2021年にグラーツ工科大学(TU Graz)と共同でWorkersに対するリモートSpectre攻撃の研究を公表し、防御策としてDyPrIsを導入していた。当時は誤検知率0.61%で、厳格なプロセス分離と同等の安全性を統計的に確保できると評価されていた。
今回の研究を受け、Cloudflareは2025年9月にもセキュリティ強化策を公表しており、現在配備されている主な緩和策は以下の通りである。
- 改良型DyPrIs: 既存のプロセス分離機構における検知能力を強化。
- V8 Sandbox: 64ビットポインタへの一時的なアクセスを制限。
- MPKベースのプロセス内分離: CPUのハードウェアレベルでメモリ領域ごとにアクセス権を制御できる機能「Memory Protection Keys(MPK)」を利用し、Workerのヒープ領域を保護。一般的なx64システムで利用可能な約12個のキーを、V8 Sandboxやローテーションメモリと組み合わせて運用。
Cloudflareはこれらの多層防御により、本番環境における安全性が確保されているとしている。