SGLang修复跨请求KV缓存泄露: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暴露。SGLang团队随后联合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端会一直占着槽位,直到所有确认或超时到期,再叠加传输层防护和完整性检查,静默数据污染的风险被消掉了。