Cloudflare discloses cross-customer data in 155 Workers AI GLM-5.3 responses
Cloudflare says 155 GLM-5.3 responses contained other customers' request data between August 27 and September 9. It fixed the hosted service before restoring access; self-hosted disaggregated SGLang operators should review engine versions and cache handling.
- Disclosed
- Oct 26, 2026
- Public disclosure date
- Severity
- Sharted
- No CVE: a breach, not a bug
- Splash zone
- Workers AI GLM-5.3 users during Aug 27–Sep 9; self-hosted SGLang prefill/decode deployments need review
- cloudflare · sglang
- In the wild
- Not seen
- Confirmed accidental exposure; Cloudflare found no evidence of deliberate exploitation
What happened
Cloudflare’s October 26 report describes a production data exposure that was already contained in September. Between August 27 and September 9, 155 responses, all to prompts longer than 681,280 tokens, included information from other customers’ recent requests to the same Workers AI model, @cf/zai-org/glm-5.3. That is a response count, not a count of people, organizations or accounts. Cloudflare says no other hosted Workers AI model was affected and found no evidence of deliberate exploitation after excluding its testing and the researcher’s activity.
The deployment advertised a 1,048,576-token context window while its prefill KV pool held only 681,280 tokens. In disaggregated serving, prefill processes prompts and transfers cached model state to separate decode GPUs. An over-capacity request became a one-token placeholder instead of being stopped. Decode treated the transfer as complete and generated output using pages still containing earlier requests’ data. The threshold describes the request receiving the response, not a safe lower bound for data submitted by potential source customers.
Cloudflare increased capacity and patched rejection handling before restoring the model on September 9. Its earlier public status notice covered errors; October 26 is the coordinated disclosure date for the data exposure. An older public SGLang bug report and pre-disclosure fixes do not establish that this hosted incident’s customer impact was public then.
For self-hosters, the recommendation is SGLang 0.5.22 or later plus configuration validation, rather than assuming a model name or an HTTP success code proves safety. The incident-specific rejection fixes appeared in 0.5.20 and 0.5.21. Related fixes address interrupted RDMA transfers, premature page reuse and cache lifetime; these have distinct prerequisites. The maintainers say the cross-engine interrupted-transfer race requires a mid-transfer termination and reuse of slots while writes are still in flight; a single-instance deployment without that transfer path is not affected by that specific race. In their reproduction it leaks the aborted request’s context into another client’s output, not back to the aborting client, which cannot select a victim. That is distinct from this incident’s rejected-request stale reads. The maintainer disclosure also identifies failed-send fix #45973 for NIXL/MORI, targeted for 0.5.23. It merged after 0.5.22; review confirmed 0.5.22 was still the latest published GitHub release, so these backends need that additional patch in a reviewed build/backport. The checksum cleanup #39729 and additional hardening were also pending release or development; 0.5.22 does not imply every proposed safeguard has shipped.
L3: confirmed tenant-isolation failure in a mainstream managed AI service, with actionable upstream implications. The known scope is limited and the service was repaired before disclosure; this is not evidence of ongoing theft, a platform-wide breach or a defect in every deployment of the model. Customer count, specific exposed data and customer-specific notifications are not quantified in the cited report. No CVE or GHSA identifier is assigned in these disclosures.
Fixed versions
| Product | Safe from | Note |
|---|---|---|
| Workers AI GLM-5.3 | Provider remediation, September 9, 2026 | Hosted service restored after validation |
| Self-hosted SGLang | 0.5.22 | Vendor-recommended baseline; NIXL/MORI also require the additional failed-send fix |
| SGLang NIXL/MORI failed-send handling | Build including upstream patch 45973 | Merged after 0.5.22; maintainer disclosure targets 0.5.23, not yet a published release |
Crime-scene timeline
Aug 27, 2026
Affected model launched with an undersized prefill cache
Sep 8, 23:11 UTC
Researcher reported cross-customer output through HackerOne
Sep 9, 14:00 UTC
Cloudflare disabled public access to GLM-5.3
Sep 9, 19:40 UTC
Model restored after capacity and engine fixes were validated
Oct 19, 2026
SGLang 0.5.22 released, according to Cloudflare's incident timeline
Oct 26, 2026
Coordinated disclosure describes the data exposure and upstream hardening
Who said what
We list each claim and who made it. Primary sources (the vendor, the researcher, the registry) are marked. Where reports disagree, we grade by the worst credible case.
- Cloudflare incident reportPrimaryOctober 26 disclosure; 155 affected responses, one hosted model, September 9 remediation, no evidence of deliberate exploitation, and detailed SGLang operator guidance.
- SGLang coordinated security disclosurePrimaryMaintainers explain rejected-request handoff and related interrupted-transfer races; the latter require PD disaggregation and in-flight writes into reused slots.
- SGLang NIXL/MORI failed-send fixPrimaryAdditional fix prevents false drained acknowledgements after failed NIXL/MORI writes; merged after 0.5.22, which remains the latest published GitHub release at review.
- Cloudflare September 9 status noticePrimaryThe earlier availability notice described increased errors, rather than publicly identifying cross-customer data exposure.