ConicPlex

Start Your Project

A data center server aisle lit in orange, with a stream of light leaking between two adjacent server units, symbolizing a cross-request data leak.

On this Page

Cloudflare’s Workers AI Leaked Other Customers’ Data in 155 GLM-5.3 Responses

Cloudflare disclosed that a bug in its Workers AI GLM-5.3 model leaked fragments of other customers’ prompts in 155 responses between August 27 and September 9, 2026. Here’s the root cause and what operators running similar inference setups should check.

Sameer Malek

October 30, 2026

Cloudflare disclosed on October 26, 2026 that a bug in its Workers AI platform let 155 responses from the GLM-5.3 model leak fragments of other customers’ prompts between August 27 and September 9, 2026. The cause was a mismatch between the model’s advertised context window and the actual size of its GPU cache, combined with a bug in the inference engine SGLang. Cloudflare says only GLM-5.3 was affected and that the model was pulled offline within 40 minutes of the incident being declared.

The bug only triggered on very long prompts, and it’s a useful case study even if you’ve never touched Workers AI, because the failure mode shows up anywhere teams run shared inference infrastructure for multiple customers or tenants. It’s also the second AI-infrastructure security disclosure of real substance this quarter, after GitLab patched a critical flaw in its AI Gateway product in early October.

What Actually Went Wrong with Workers AI

GLM-5.3 was deployed with a 1,048,576-token context window, but the GPU memory pool reserved for the key-value (KV) cache during the prefill stage only had room for 681,280 tokens. Cloudflare says it knew about the gap before launch but assumed the engine would simply reject anything too large with an error. Its pre-launch tests checked for the right HTTP status codes, not what was actually in the response body.

That assumption broke because of a second bug, this one in SGLang, the open source engine Cloudflare runs in a disaggregated prefill/decode configuration (separate GPUs handle the initial prompt processing and the token-by-token generation). When a prompt exceeded the pool, SGLang marked the request as rejected internally but never aborted it. Prefill substituted a one-token placeholder and still signaled “transfer complete” to the decode node. Decode then read from cache pages that still held leftover data from a previous customer’s request, and returned HTTP 200 as if nothing had gone wrong.

Security researcher Gadi Evron of Knostic reported the issue through Cloudflare’s HackerOne bug bounty program on September 8. Cloudflare reproduced it the next day and says all 155 affected responses involved prompts longer than 681,280 tokens, consistent with ordinary long-context use rather than deliberate probing. The company says it found no evidence anyone exploited the bug on purpose.

The Fix, and Why It Took Two Months to Publish

Cloudflare’s immediate fix was to resize the GLM-5.3 KV pool to roughly 2.04 million tokens, about double the model’s context window, matching the configuration already used for GLM-5.2. The harder fix was upstream: SGLang needed to actually abort rejected requests at the admission queue, before any cache transfer happens, rather than quietly carrying on. That patch landed as SGLang v0.5.22 on October 19, more than three months after the underlying bug was first filed against the project in July.

The gap between the September 9 fix on Cloudflare’s side and the October 26 public writeup is the coordinated disclosure window: Cloudflare worked with the SGLang maintainers to get the upstream patch released before publishing details that could help someone reproduce the bug against other operators still running the vulnerable version.

Who Should Actually Care

If you’re not running your own inference infrastructure, this one’s mostly interesting rather than urgent. But it’s directly relevant if your team self-hosts SGLang, especially in disaggregated mode, or if you’re building on AI integrations where a vendor’s long-context claims and its actual cache sizing might not match the way GLM-5.3’s didn’t. Cloudflare’s own advice for other operators is worth following regardless of vendor: check that your KV pool size can actually cover your advertised context length, upgrade to SGLang v0.5.22 or later, and turn on cache corruption detection where your engine supports it.

It’s also a reminder that “the API returned 200” isn’t the same as “the API did what you asked.” Cloudflare’s own pre-launch testing checked status codes, not content, which is exactly the kind of gap that’s easy to miss when you’re validating a new model integration under time pressure.

Sources

Sameer Malek is a Senior Full Stack Developer at ConicPlex, working across the stack on projects that don’t fit neatly into one platform or framework. He’s often the person weighing a genuine platform or architecture decision rather than defending one side of it, since his work regularly crosses between WordPress, custom builds, and everything in between. He writes here about the comparisons and tradeoffs that come up when there’s more than one reasonable way to build something.

Leave a Reply

Your email address will not be published. Required fields are marked *

Keep reading

Plugins

Illustration of three purple bundled boxes tied together with a gold ribbon, representing a WooCommerce frequently bought together discount bundle

How to Add a Frequently Bought Together Discount Bundle to a WooCommerce Product Page (3 Plugins Compared)

WooCommerce has no native discount bundle. WPC, YITH, and Merchant Frequently Bought Together plugins compared on price, setup, and real…

Sajil Memon

October 30, 2026

Software

A laptop screen showing three colorful category icons, a paw print, a broom, and a wrench, next to a wooden organizer tray holding a leash clip, cloth, and wrench sorted the same way, representing a multi-category service marketplace data model

Why Multi-Category Service Marketplaces Need a Different Data Model

A multi-category service marketplace, one connecting clients to dog walkers, cleaners, and repair techs under a single search box, cannot…

Sameer Malek

October 29, 2026

Plugins

Illustration of a package with a return arrow, representing self-service WooCommerce order cancellation and refund requests

How to Let WooCommerce Customers Cancel or Request a Refund on Their Own Order (4 Plugins Compared)

Four real plugins that let WooCommerce customers cancel or request a refund on their own order from My Account, compared…

Husen Memon

October 29, 2026

WhatsApp
Husen Memon
Husen Memon
Typically replies instant