製品 Lemma API証明の発行・検証の基盤Trust402エージェントに任せ、取引するSeal鍵を渡さない、エージェント時代のサインイン
ユースケース 製造・基幹インフラ検査記録アシュアランス金融・FinTech取引先レコード検証自治体・公共証明書レス手続き医療・ヘルスケア有資格者アシュアランス調達・サプライチェーン仕入先資格モニタリングメディア・コンテンツコンテンツ真正性サービス・小売グループ横断アイデンティティAI導入(業種横断)AI実行ガバナンス開発者・エージェント運用エージェント権限統制 ▸ 業界別ソリューション索引を見る
料金
リソース Critical BriefAI×信頼の最前線ブログ考え方と実装の記録ドキュメントAPI と仕様書検証センター検証・発行の実数運営会社FRAME00, Inc.お問い合わせ導入・取材のご相談用語集言葉の定義FAQよくある質問
始める ↗ EN

Cloudflare Workers で隣接テナントの JWT が Spectre で抜き取れることが示された

盗まれたトークンが、そのまま利用者として通ってしまう

事案日
2026-08-19
公開日
2026-08-21
発行
Lemma Critical Team
関連 Pack
Pack C · Agent Governance

TL;DR

Cloudflare は、テナントが 1 プロセスを共有する Workers で、本番相当の条件下で隣接テナントの JWT を抜き取れるリモート Spectre 攻撃を実証したと公表した。読み出しは最大 12 ビット/秒・99% 超の精度。JWT は、持っていること自体が「ログイン済み」の証明として扱われる。効かなかったのは、トークンを提示した相手が、その正当な持ち主かを確かめる層である。

何が起きたか

  • Cloudflare Workers Runtime チームは、学術研究者(Univ. Edinburgh の Haocheng Xiao ほか)と共同で、2021 年に評価した Workers へのリモート Spectre 攻撃を再評価した。論文(arXiv:2608.17043)を公表し、研究は 2024〜2025 年初に実施された。
  • 本番環境で、最大 12 ビット/秒・99% 精度で別テナントのメモリを読み出せることを実証した。Workers は数万のテナントを V8 アイソレートで 1 プロセスに同居させており、各 Worker は独立ヒープを持つが、1 つの任意読み取りがテナントをまたいだ漏洩につながりうる。
  • 常時接続用の仕組み Durable Objects を使い、WebSocket のキープアライブで 1 つのアイソレートを生かし続けることで、CPU 時間・リクエスト上限のリセットを繰り返し、攻撃に必要な持続的な計測チャネルを確保した。これにより、悪性らしいスクリプトを事後にプロセス隔離する DyPrIs を回避した。
  • Cloudflare は実験として被害側 Worker に JWT を置き、それを 1 ビットずつ漏洩させたと記している。JWT は多くの Web アプリで「ログイン済み」を示す資格情報であり、静かに盗めばそのセッションを盗めることになる。

攻撃は次の連鎖で成立している。

  1. 攻撃者の Worker が、被害者の Worker と同じプロセスに同居する。
  2. Durable Objects と WebSocket で 1 つのアイソレートを生かし続け、持続的な計測チャネルを得る。
  3. Spectre のサイドチャネルで、隣接テナントのメモリ(JWT を含む)を 1 ビットずつ読み出す。
  4. 得た JWT を提示すれば、提示した相手が正当な持ち主かを問われないまま、そのセッションの利用者として通る。

時系列 — 公表と対応

  • 2024〜2025 年初:Cloudflare Workers Runtime チームが本番環境で再評価を実施。
  • 2025-09:Memory Protection Keys(MPK)によるプロセス内隔離を配備。
  • 2026-08(公表):Cloudflare が論文と解説を公開。本番で 12 ビット/秒・99% 精度の漏洩を実証。攻撃は公表時点で既に本番で緩和済み(DyPrIs 改善・V8 Sandbox 統合・MPK 導入)。過去 3 年に実悪用の痕跡は確認されていない、と表明。

本 Brief は、実地の被害でなく、プラットフォーム自身による本番環境での実証を扱う。攻撃は公表時点で緩和済みで、実悪用の痕跡は確認されていない。数値(12 ビット/秒・99% 超)と緩和内容、および JWT 抽出の実験は、いずれも Cloudflare の公表に基づく。

対応と論点は次のとおり。

  • プラットフォーム側は、サイドチャネルという塞ぎにくい経路に対し、隔離と検知を重ねて緩和した。これは重要な防御だが、その前提は「盗まれた資格情報は、盗んだ側では通らない」ことではない。
  • JWT のような持参型トークンは、保持がそのまま本人性として扱われるため、いったん漏れれば持ち主の区別が効かない。

なぜ止まらなかったか

この事案の焦点は、Spectre というサイドチャネルの塞ぎにくさだけではない。盗まれた JWT を提示した相手が、その正当な持ち主かを確かめる層が無いことにある。

JWT は、それを持っていること自体が「ログイン済みの利用者だ」という証明として扱われる(bearer トークン)。だから、同居テナントがサイドチャネルで静かにそれを読み出せば、盗んだ側は正規の利用者と区別されないまま、そのセッションで行動できる。悪性らしい挙動を検知してプロセスを隔離する DyPrIs は防御として機能するが、常時接続で回避された。効かなかったのはその手前——「このトークンを出しているのは、本当にその持ち主か」を確かめる層である。

持参型の資格情報は、保持がそのまま本人性として通る。トークンが漏れた瞬間、持ち主と盗んだ側の区別は消える。本人性は、トークンの保持ではなく、鍵を渡さずに示せる証明で初めて担保される。

これは、失効後もしばらく有効だった資格情報が使われた Brief 006、失効されない古い資格情報と長命 OAuth が侵入経路になった Brief 075 と同じ方向にある。共通するのは、資格情報の「保持」と「正当な持ち主であること」が結び付いていないことである。

証明があれば、何が変わるか

事前証明(proof-as-auth)は、セッションの認証を、再利用できる持参トークンから、鍵を渡さずに本人性を示す証明へ置き換える。トークンが漏れないようにするのではない(サイドチャネルは塞ぎにくい)。漏れたトークンが、そのまま利用者として通らないようにする。

Lemma がこの落差に対して提示する設計は次の通りである。

  • 鍵を渡さない本人性の証明:セッションの認証を、持参すれば通る秘密(bearer トークン)でなく、鍵そのものを送らずに正当な持ち主だけが示せる証明に置く。
  • 提示者の正当性の検証:資格情報を受け取った側が、「これを出しているのは正当な持ち主か」を、行動を認可する前に確かめられる形にする。保持を本人性の代用にしない。
  • スコープと短命化:セッションで示せる権限を必要な範囲に固定し、漏れた場合の再利用の窓を狭める。

担わないものも、あわせて書いておく。

  • Spectre のようなサイドチャネルそのものを塞ぐのは、ランタイムと CPU の隔離・緩和の仕事である。この層はその後段で、漏れたトークンが利用者として通らないようにする。
  • 証明が示せるのは提示者が正当な持ち主かまでで、利用者側の端末が別経路で侵害された場合までは守れない。
  • どのセッションにこの認証を課すかを決めるのは運用者であり、この層が出せるのはその手段までである。

自社のアクセスログとの違いはここにある。ログはトークンが使われた後に残るが、それを出したのが正当な持ち主かを、行動の前に区別する材料にはならない。

検出の層と、この層は代替ではなく補完の関係にある。前者は悪性らしい挙動を捉えて漏洩の確率を下げ、後者は「漏れたトークンが、そのまま利用者として通らない」ようにする。

Sources

「AI 時代のサイバー防衛に残された、最後の層」「Proof-as-Auth: 鍵を一度も送らずにサインインする」Pillar 03 — エージェント権限

本資料は公開情報の構造化分析であり、特定組織への監査・診断・推奨ではありません。攻撃は公表時点で本番環境において緩和済みです。

本資料は公開情報の構造化分析であり、特定組織への監査・診断・推奨ではありません。

この Brief を引用する

Lemma Critical Team. (2026).
"Cloudflare Workers で隣接テナントの JWT が Spectre で抜き取れることが示された — 盗まれたトークンが、そのまま利用者として通ってしまう".
Lemma Critical Brief No.134. Lemma / FRAME00, Inc.
https://lemma.frame00.com/ja/critical/briefs/134-cloudflare-workers-spectre-jwt-cross-tenant/
Lemma

確かめられないものを、
業務に入れない。

Lemma は、データや AI の実行に暗号技術で証明を付け、受け取った側が発行者に問い合わせることなく真正性を確認できるようにします。検出はそのままに、その前段へ一層を足す構成です。