SGLang修复GLM-5.3跨请求缓存暴露:影响哪些部署?
2026年9月,Cloudflare向SGLang团队报告了GLM-5.3部署中存在的跨请求KV cache暴露漏洞。该漏洞源于异步RDMA传输与请求中止路径的竞态条件,可能导致用户会话数据泄露。团队与Cloudflare合作修复了准入拒绝路径,并引入延迟KV cache释放机制等改进。本文详细解析问题根源、影响范围及
2026年9月9日,
Cloudflare 向 SGLang 团队通报:部署在 Workers AI 上的 GLM-5.3 出现了跨请求 KV cache 暴露。团队随即联合 Cloudflare 与安全研究员动手处置,修复了请求拒绝路径,并收紧分离式服务里的缓存生命周期管理。
哪些部署受影响
此次事件只波及 2026年8月27日至9月9日之间上线的 @cf/zai-org/glm-5.3 模型。Cloudflare 排查后确认,Workers AI 的其他模型没有受到牵连。故障出在分离式 prefill/decode 服务上:当请求量超过 prefill KV cache 的容量,系统就可能把别的用户会话内容返回出去。
问题根源
具体来看,Cloudflare 设置的上下文长度为 1,048,576 tokens,而 prefill KV cache 池只能装下 681,280 tokens,拒绝路径因此被触发。到了分离式路径中,被标记为拒绝的请求仍有可能进入 handoff,decode 端随后读到尚未初始化的缓存页。
修复动作与上游改动
9月9日当天,Cloudflare 关掉了该模型的公开访问,扩充 prefill 池容量,同时部署了引擎补丁。上游的 PR #36988 和 #38935 分别做了一件事:及时回收被中止的请求,以及在进入分离式 handoff 之前就把请求拒掉。
KV cache 生命周期上的另一处问题
团队还处理了异步传输中的竞态条件。在 prefill/decode 分离服务里,被中止请求的 RDMA 写操作还在进行,如果 decode 端提前释放槽位,这次写入就可能覆盖掉其他请求的缓存。
机制层面的原因
异步 RDMA 传输没法取消已经发布的写操作,分配器有可能在写操作完成之前就把槽位标成 free,进而造成分布式的 use-after-free。要把活性问题处理完整,得从路由器一直做到引擎层。
新机制加入了延迟释放:decode 端会一直保留槽位,直到所有确认到齐或者超时到期,再配合传输层防护和完整性检查,静默数据污染的风险被消除。