SGLang 披露并修复 PD 分离服务中的跨请求 KVCache 竞态问题

工具AI 评分 82/100LMSYS Blog待复核
AI 聚合

本条为 AI 依据下方公开信源自动整理生成的摘要,不构成转载,可能存在偏差,请以原文为准。整理者:贝果科技 AI 资讯助手。

本条选题由第三方线索发现;线索方提供的摘要未被采用,本页内容依据下方信源整理。线索来源:AIHOT

SGLang 披露了其分离式预填充/解码(PD 分离)服务中的一个 KVCache 生命周期缺陷:当请求超出预填充 KV 缓存容量时,本应被拒绝的请求仍可能走完交接流程,解码阶段读到不属于该请求的缓存页,导致跨用户会话内容暴露。Cloudflare 于 2026 年 9 月 9 日通报,其 Workers AI 上 @cf/zai-org/glm-5.3 在 8 月 27 日至 9 月 9 日期间受影响,未波及其他模型。触发条件是配置上下文长度 1,048,576 token 而预填充缓存池仅能容纳 681,280 token。修复包括延迟释放 KVCache、准入路径修正与 Mooncake 传输批大小调优。

全文梳理

AI 摘要依据下方信源原文自动整理,非原文转载

缺陷如何被触发

问题出在分离式预填充/解码服务中:提示词处理和响应生成由不同 worker 承担。Cloudflare 的部署把上下文长度配置为 1,048,576 token,但预填充阶段的 KV 缓存池实际只能放下 681,280 token,因此一个请求可以落在配置窗口之内、却超出真正可用的显存。在单节点路径下,这类请求会直接返回错误;而在 PD 分离路径下,被标记为拒绝的请求仍可能继续走完交接,解码端随后读取了并未为该请求填充过的缓存页,于是返回了其他用户会话的内容。配置不匹配让拒绝路径变得可达,是这次暴露的前提。

修复与运维建议

SGLang 给出的修复包含三部分:一是延迟 KVCache 释放,避免槽位在请求尚未真正结束时被判定为空闲;二是修正准入路径,使被拒绝的请求不再进入后续交接;三是对 Mooncake 传输批大小做调优。文中还列出了性能影响评估与面向运维者的推荐操作,并附上相关 PR 列表与披露时间线。对运行 SGLang 分离式部署的团队而言,需要核对上下文长度与预填充缓存池容量是否匹配,并按推荐操作升级。

披露与协作过程

该问题由研究人员通过 Cloudflare 的 HackerOne 项目报告,Cloudflare 随后通知 SGLang 并共同处理请求拒绝路径、加强分离式服务中的缓存生命周期管理。此次披露由 SGLang 与 Cloudflare 及报告者协调发布:Cloudflare 的报告覆盖其生产事故与客户影响,研究者的报告将说明发现过程与外部验证,SGLang 这篇则聚焦底层机制、所做改动与运维指引。文中同时提到若干相关的 KV 缓存生命周期问题。

为什么值得看

分离式推理服务的缓存生命周期缺陷会直接造成跨用户数据泄露,做 PD 分离部署的团队需要核对配置并升级。

上下文长度

信源1 家

  1. [1]LMSYS Blog线索来自 AIHOTSGLang 披露并修复 PD 分离服务中的跨请求 KVCache 竞态问题

关键事实

  • Cloudflare 于 2026 年 9 月 9 日向 SGLang 通报其 GLM-5.3 部署存在跨请求 KV 缓存暴露[1]

  • Workers AI 上的 @cf/zai-org/glm-5.3 在 2026 年 8 月 27 日至 9 月 9 日期间受影响,未发现其他模型受影响[1]

  • 涉事部署配置上下文长度为 1,048,576 token,而预填充 KV 缓存池只能容纳 681,280 token[1]

  • 修复措施包括延迟 KVCache 释放、准入路径修正和 Mooncake 传输批大小调优[1]

相关 · 工具

本页内容由 AI 自动聚合公开信源生成,仅供了解行业动态参考,不构成任何投资或决策建议。如需引用请以原文出处为准。