SGLang セキュリティアップデート:リクエスト隔離メカニズムの強化

SGLang セキュリティアップデート:リクエスト隔離メカニズムの強化

2026年9月9日、CloudflareはSGLangチームに対し、Workers AI上に展開されたGLM-5.3においてクロスリクエストKVキャッシュ漏洩問題が存在することを通知した。チームは迅速にCloudflareおよびセキュリティ研究者と協力し、リクエスト拒否パスを修正するとともに、分離型サービスにおけるキャッシュライフサイクル管理を強化した。

影響範囲と影響を受けた展開環境

本インシデントは、2026年8月27日から9月9日の期間における@cf/zai-org/glm-5.3モデルにのみ影響した。Cloudflareの調査により、他のWorkers AIモデルへの影響はないことが確認された。問題は分離型prefill/decodeサービスにおいて発生しており、リクエストがprefill KVキャッシュ容量を超えた場合に他のユーザーのセッション内容が返される可能性があった。

問題の根本原因

Cloudflareが設定したコンテキスト長は1,048,576トークンであったが、prefill KVキャッシュプールの収容可能量は681,280トークンにとどまり、拒否パスが発動される状態となっていた。分離型パスでは、拒否とマークされたリクエストが依然としてハンドオフ処理に進む可能性があり、decodeエンドが未初期化のキャッシュページを読み込んでしまう問題が生じていた。

中断されたリクエストの書き込みが、既に別のリクエストに再割り当てされたKVキャッシュスロットに着地する様子。

即時修正と上流への変更

Cloudflareは9月9日にモデルへの一般アクセスを停止し、prefillプールの容量を拡大するとともにエンジンパッチを適用した。上流のPR #36988および#38935では、それぞれ中断されたリクエストの即時回収と、分離型ハンドオフ前の早期リクエスト拒否が実装された。

KVキャッシュライフサイクルに関連する問題

チームはさらに、非同期転送における競合状態(レースコンディション)の解消にも取り組んだ。prefill/decode分離サービスにおいて、中断されたリクエストのRDMA書き込み操作が進行中の状態で、decodeが早期にスロットを解放した場合、他のリクエストのキャッシュへの書き込み上書きが発生する可能性があった。

Pythonスケジューラ下位の転送スタック:中断により以降のチャンクは停止するが、起動済みの転送とNICへの書き込み投入は継続する様子。

背景とメカニズムの分析

非同期RDMA転送では、既に投入された書き込み操作をキャンセルすることができず、アロケータが書き込み完了前にスロットをfreeとマークしてしまう可能性があり、分散型のuse-after-freeが発生する。完全な活性処理はルーターからエンジン層にわたる対応が必要となる。

遅延KVキャッシュ解放:decodeは必要なすべてのドレイン確認が届くか、設定されたタイムアウトが切れるまでスロットを保持する様子。

新たなメカニズムでは遅延解放が導入され、decodeエンドはすべての確認受信またはタイムアウト到達までスロットを保持する。転送層の保護および整合性チェックと組み合わせることで、サイレントなデータ汚染リスクを効果的に排除している。