GLM-5.3 Workers AIモデルにおけるリクエスト間のKVキャッシュ漏洩とSGLangによる対策をCloudflareが解説
2026年9月8日、Cloudflare Workers AIでホストされているGLM-5.3モデル(@cf/zai-org/glm-5.3)においていわゆる「テナント分離問題」が発生していることがセキュリティ研究者のガディ・エヴロン氏により報告されました。Cloudflareはこのインシデントを修正し、モデルは9月9日に復旧されました。インシデント情報開示の一環としてCloudflareによる解説が10月26日に公開されています。
Cross-request KV cache exposure in the GLM-5.3 Workers AI model, and our remediation with SGLang | Cloudflare Blog
https://blog.cloudflare.com/kv-cache-exposure-remediation/
2026年8月27日から9月9日の間にGLM-5.3 Workers AIモデルを利用していた顧客の一部が、自身の要求の直前に行われた他の顧客のリクエストデータを含む応答を受け取るという現象に見舞われました。影響を受けた応答は合計155件で、いずれも68万1280トークンを超えるプロンプトに対して送信されたものでした。Cloudflareの調査によると該当するリクエストは通常の長文コンテキスト使用状況とタイミング・量とも一致しているため、意図的なバグの悪用とは考えにくいと結論付けています。
最終的にこのインシデントは、Cloudflareが使用するオープンソース推論エンジンであるSGLangの設定ミスとバグの組み合わせによって引き起こされたことが判明しました。
1つ目の問題はSGLangの設定ミスです。GLM-5.3は104万8576トークンのコンテキストウィンドウでデプロイされましたが、プリフィルKVキャッシュプールには68万1280トークンしか格納できませんでした。格納できるトークン数に不一致があることはリリース前に認識されていましたが、トークンが収まらない場合にはエラーが発生することが期待されていました。
2つ目の問題は、SGLangが分離型プリフィル・デコードモードで発生する超過リクエストを処理する方法にバグがあったことです。プロンプトがキャッシュプールに収まらない場合、リクエストは内部的に拒否され1トークンのプレースホルダーに置き換えられました。しかしリクエストを中止してクライアントエラーを返すのではなく、プリフィルノードはプレースホルダーのKVキャッシュを生成しデコードノードに転送しました。デコードノードは以前のリクエストのKVキャッシュが上書きされたと誤認し、古いキャッシュデータを含む応答を生成することがありました。結果的に、68万1280トークンを超えるプロンプトに対するレスポンスに他のユーザーのGLM-5.3セッションのデータが含まれる可能性が生じました。
問題の報告を受けたCloudflareは、モデルを一旦無効化した上で以下の2点の対応を実施し、検証の完了後にモデルを復旧しました。
・設定の修正
KVキャッシュプールのサイズをモデルのコンテキスト長に合わせるよう調整し、約204万トークンを保持できるようにしました。
・エンジンの修正
SGLangエンジンにパッチを適用し、拒否されたリクエストが安全に処理されるように修正しました。具体的には、拒否されたリクエストが破棄されるように変更し、デコードノードが転送されたトークン数の検証が追加されています。
一連のタイムラインを整理すると以下の通りとなります。
| 日時 | 出来事 |
|---|---|
| 2026/8/27 | GLM-5.3がコンテキストウィンドウよりも小さいプリフィルKVプールを設定した状態でWorkers AI上でリリース |
| 2026/9/8 23:11 | HackerOne経由で報告を受ける |
| 2026/9/9 08:00 | CloudflareはHackerOneの報告内容の検証を開始 |
| 2026/9/9 13:22 | セキュリティインシデント宣言、製品セキュリティ部門は2つの独立したアカウントを使用して25分以内に情報漏洩を再現 |
| 2026/9/9 14:00 | 問題の範囲を確認後、GLM-5.3を非公開に設定 |
| 2026/9/9 14:35 | 根本原因の特定 |
| 2026/9/9 14:52 | すべてのプリフィルノードが修正された構成に移行 |
| 2026/9/9 19:04 | 拒否されたリクエストに対して正しくエラーを返すエンジンパッチを適用し、デプロイメントを再構築 |
| 2026/9/9 19:40 | 対策済みモデルが一般公開 |
| 2026/9/10 23:30 | SGLangのメンテナー(RadixArkのCTOおよびコアエンジニア)と会合を開き、上流の修正について合意 |
| 2026/9/11~19 | すべての本番環境のSGLang展開環境に、追加のセキュリティ強化策が適用 |
| 2026/9/16~10/12 | 上流のSGLangとの統合、遅延KVリリースのデフォルトを有効に変更 |
| 2026/10/2 | SGLang v0.5.21リリース |
| 2026/10/19 | SGLang v0.5.22リリース |
| 2026/10/26 | 情報開示 |
Cloudflareは今回のインシデントを受けて、以下の対策を実施しました。
・分離されたデプロイメントのハードニング:遅延リリースを拡張し、すべての失敗タイプをカバーするようにした
・SGLangチームとの連携強化:SGLangメンテナーと協力し、関連するプルリクエストをv0.5.22に反映
また、他のオペレーター対して以下の対策を推奨しています。
・KVプールサイズとコンテキスト長を常に測定し、プールが小さい場合はコンテキスト長を調整すること
・SGLangをv0.5.22以降のビルドにアップグレードすること
・遅延KVリリースを有効にし、Mooncake転送バッチを制限すること
・出力の破損検出を有効にすること
・クライアント切断がリクエストの中断を引き起こさないようロードバランサーを構成すること
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.


