Key details

  1. Coordinated public disclosure October 26, 2026; exposure August 27–September 9.
  2. 155 affected GLM-5.3 responses, all from prompts over 681,280 tokens.
  3. Model context 1,048,576 tokens; prefill KV pool 681,280 tokens.
  4. SGLang disaggregated admission path forwarded a rejected placeholder as a completed transfer.
  5. Cloudflare fixed deployment September 9; upstream fixes across SGLang v0.5.20–0.5.22.
  6. Cloudflare recommends v0.5.22 or later for disaggregated SGLang deployments.
  7. Cloudflare found no evidence of deliberate exploitation; no other Workers AI models were affected, according to its investigation.

What builders should take away

  1. If you host multi-tenant LLM inference, verify KV pool capacity against advertised context and test rejection/abort paths.
  2. For disaggregated SGLang, evaluate upgrading to v0.5.22 or backporting the relevant patches.
  3. Run cross-tenant long-context isolation tests and inspect generated output, not just HTTP 200 responses.
  4. Confirm whether KV checksum/canary protections cover your model architecture and attention backend.
  5. Treat the reported 155 responses as Cloudflare's incident scope, not proof that all SGLang operators were affected.

What changed

On October 26, 2026, Cloudflare published a coordinated incident report describing cross-request data exposure in the GLM-5.3 Workers AI model. Between August 27 and September 9, 155 responses to requests longer than 681,280 tokens contained data from other customers' prior requests. A GLM-5.3 deployment advertised a 1,048,576-token context window but its prefill KV pool held only 681,280 tokens. In disaggregated SGLang, a rejected over-capacity request was replaced with a placeholder, yet forwarded to decode as if its full KV cache had arrived. Decode then read stale pages from earlier requests. Cloudflare corrected the configuration and patched the engine September 9; upstream SGLang fixes landed across v0.5.20–0.5.22. Cloudflare recommends v0.5.22 or later for other disaggregated operators.

Why it matters

This is a concrete cross-tenant confidentiality failure in shared inference, not a speculative prompt-injection scenario. A normal HTTP 200 and apparently coherent model response hid the memory-isolation bug. Teams hosting multi-tenant models on disaggregated prefill/decode systems need to test the capacity and rejection path, verify that every allocated KV page belongs to the current request, and apply the relevant SGLang fixes. Customers of the specific Cloudflare model were exposed during the historical window; Cloudflare says it found no deliberate exploitation and no other Workers AI model affected.

The mismatch that made one tenant's cache visible to another

The model's published context window was about 1.05 million tokens, but the prefill cache pool could hold only 681,280. When longer prompts arrived, SGLang marked the request rejected and replaced its prompt with a one-token placeholder. In disaggregated mode, admission logic still treated it as active, sent one page and marked transfer complete. The decode worker reserved pages for the original prompt and read previously occupied pages not overwritten by the placeholder, producing a coherent but contaminated response.

A production incident with a bounded historical scope

Cloudflare received a report from Knostic researcher Gadi Evron on September 8, reproduced it with two accounts, took the model offline September 9, then deployed a larger pool and a safe rejection path before restoring service. It identified 155 affected responses from August 27 through September 9, all above the 681,280-token threshold. Cloudflare reports no evidence of deliberate exploitation and says no other Workers AI models had this exposure.

Upstream fixes are not just a Cloudflare configuration change

The unsafe admission/rejection path was patched in SGLang v0.5.20, with follow-up fixes in v0.5.21 and v0.5.22. Cloudflare also discusses transfer integrity checks, abort handling, deferred page release and bounded transfer batches to reduce related stale-page risks. It recommends v0.5.22 or later for operators using disaggregated SGLang, or backporting the relevant patches where an upgrade is impossible.

What inference operators should test

Check the effective KV pool size at runtime against the maximum supported context window, not just HTTP status or token accounting. Reproduce oversized-prompt and rejected-request behaviour with separate tenants, including disconnect and abort races. Verify that invalid requests return an error and cannot decode over stale KV pages. Enable supported transfer checksums and canary checks, but confirm architecture coverage rather than assuming every model is protected.

What to watch next

  • Independent reproductions and additional vendor exposure assessments for SGLang disaggregated mode.
  • General-purpose page ownership/integrity checks across inference backends.
  • Any revisions to Cloudflare's affected-customer scope or SGLang patch recommendations.

Still unclear

  • The 155-response count and no-exploitation finding are Cloudflare's own incident analysis.
  • Independent verification of all production deployments using vulnerable SGLang versions is unavailable.
  • Some checksum/canary mitigations do not cover every model architecture.

Sources

Direct reading behind this dossier.

2 sources

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment