Cross-request KV cache exposure in the GLM-5.3 Workers AI model (155 responses)

Posted by wondersky 2 days ago

Counter181Comment79OpenOriginal

Comments

Comment by jacquesm 2 days ago

This doesn't really have anything to do with GLM-5.3. This is what happens when you share models between users and don't do your bookkeeping properly, the actual model doesn't matter. What it shows is that there isn't enough isolation between the user sessions and that memory can overlap when that should never be possible.

This is an SGLANG and a Cloudflare bug long before it is a Z.AI model bug, I don't see what they could have done about it. Cloudflare should own it instead of naming other (imo innocent) parties in the title.

Comment by kflansburg 2 days ago

At no point do we claim that it is a bug with the model. We specifically outline how it was a mis-configuration on Cloudflare's part and a bug in SGLang. We name the model in the title because our customers need to know which of our endpoints was affected. In fact, we say "the GLM-5.3 Workers AI model", not "GLM-5.3".

Comment by jacquesm 2 days ago

Not buying that. You explicitly mention the model name in the title the 'GLM 5.3 workers AI model' suggests it is something specific to GLM 5.3 which it is not. You mention Sglang and are all surprised that it didn't throw an error. But the issue was yours all along.

Comment by margalabargala 2 days ago

Yeah, their title is absolutely implying a GLM bug to anyone who doesn't read it super closely.

There's a huge amount of unnecessary extraneous details in the headline that distract from "this is a Cloudflare bug".

Comment by literallyroy 2 days ago

Not sure if the title was edited but as is it is very clear to me this is a bug on their side and I have no idea how a technically literate person (someone using the model via cloudflare?) who would misinterpret given the reference to the cache.

Comment by infecto 1 day ago

The title is poorly worded. I can easily see how it can be conflated in passing. Naming the model is silly in the title. It should be mentioned in the article but as read the title suggests it’s something related to this model.

Comment by XYen0n 2 days ago

I have read this post, and it appears that this is indeed an issue specific to the GLM 5.3 model on their platform. I am unsure whether this is because only GLM 5.3 uses SGLang or because only its configuration is problematic.

Comment by paimapi 1 day ago

Did we read different articles? None of the issues they brought up (architecture splitting, memory transport, Cloudflare's misconfigured context window provisioning, the SGLang state leak, lack of client error provisioning) are model related. These all exist at the layer of the harness (ie Cloudflare's configuration).

A better title would be "Cross-request KV cache exposure in Cloudflare provisioned GLM-5.3 Workers AI model" because it narrows culpability. Just posting it on the Cloudflare blog isn't enough for that in the age of AI and SEO data-scrapes and it'd be surprising to me if the authors didn't know that.

Comment by XYen0n 20 hours ago

The issue is not with this model; rather, it affects only this model.

Comment by fg137 1 day ago

They could have removed GLM 5.3 from the title, and the title and the body would still make perfect sense.

Comment by neuronexmachina 1 day ago

I think it's in the title because it's also doing double-duty of informing customers that only usage of the GLM-5.3 model was potentially impacted. I agree that it's so what confusing, though.

Comment by robrenaud 2 days ago

I was surprised in reading the article that it had nothing to do with the contents of the model. It could have been any model capable of 1M context that triggered this bug/misconfig on Cloudflare/SGLangs side. The title is extremely misleading.

Comment by nijave 1 day ago

Changing "model" to "endpoint" might help since it's the endpoint, not the model

Comment by fg137 1 day ago

What's the point of even mentioning GLM-5.3? That's a detail that only belongs in the body.

Did you ever given any thought about how confusing the title may be?

Did AI write this title and you just use it without ever wondering if it makes sense at all?

Comment by asdfsa32 2 days ago

"Cross-request KV cache exposure in X model".

Which part of that is not claiming the exposure is in X model? Cloudflare is stopping to be cool, this is the start. I guess, cf is now big enough for enshitification to start.

Comment by nullc 2 days ago

Then remove GLM-5.3 from the title.

Comment by fg137 1 day ago

Not what I am seeing. not sure if there is A/B testing here.

Comment by jarym 2 days ago

Their AI won’t let them

Comment by anramon 1 day ago

> We name the model in the title because our customers need to know which of our endpoints was affected

Then you would used "endpoint" instead of "model". In fact, there's actually zero reasons to put any model or endpoint in the title if the bug is yours alone.

Comment by infamouscow 1 day ago

You should change the title.

Most people will read this headline and assume Cloudflare is intentionally trying to squash open-weight models. Given how superfluous the model is to the content, it's easy to believe that narrative.

If that wasn't your intent, you really ought to change the title ASAP. Time is ticking before tech journalists and social media decide to run with that narrative and make your public relations department sad.

Comment by srdjanr 2 days ago

To me it's obvious that anything related to caching has little to do with the model itself. And it's nice to know from the title that you could only be affected if you used this model.

Comment by embedding-shape 1 day ago

It took me until "We have remediated the issue" to realize Cloudflare is talking about an issue they have in their infrastructure, up until that point they're not making that clear at all, and seems to point towards something else, unless you of course already are aware of what exact names Cloudflare uses for their products...

Comment by 2 days ago

Comment by nijave 1 day ago

It does have to do with GLM-5.3 but you're correct it doesn't have anything to do with the model.

It effects the _endpoint serving GLM-5.3_

I'm not sure how else you'd identify the GLM-5.3 serving endpoint without naming GLM-5.3.

That said, having the word "model" in the title is misleading imo

Comment by aliasxneo 2 days ago

It seems like you're trying to imply this was an intentional bias due to the nationality of the model authors. But the first sentence of the article is:

"On September 8, 2026, we were alerted by a security researcher, Gadi Evron from Knostic, to a tenant isolation issue affecting the GLM-5.3 Workers AI model (@cf/zai-org/glm-5.3) starting on August 27, 2026."

Meaning the issue was a cache exposure with the GLM-5.3 Workers AI model. If the title was, "Cache exposure issue with GLM-5.3," I would agree it's ambiguous and maybe intentionally harmful. But it literally says, "Workers AI model" which is clearly a Cloudflare product.

Comment by jacquesm 2 days ago

I did not mention anybody's nationality, nor did I imply that that was important.

Downthread I suggested "Cloudflare configuration error leaked data between user sessions" which I think is far better. You could improve on it further: "Cloudflare AI worker configuration error leaked data between user sessions". But this could have happened with any model.

Comment by weird-eye-issue 2 days ago

Why are you bringing up people's nationalities? This seems incredibly inappropriate

Comment by aliasxneo 1 day ago

Probably because there's an on-going conspiracy that's been all over HN that these large corporations are on a smear campaign against Chinese models.

Comment by jacquesm 1 day ago

You're the one perpetuating that.

Comment by aliasxneo 1 day ago

Yes, because debunking something is equivalent to perpetuating it. Can't imply someone might be racist because then you perpetuate racism. That literally makes no sense lol.

Comment by jacquesm 1 day ago

You can't debunk that which isn't said.

Comment by aliasxneo 1 day ago

It has been said, ad naesuem, all over HN for weeks now. I pegged the OP wrong.

Comment by weird-eye-issue 1 day ago

You are a weirdo just making things up

Comment by aliasxneo 1 day ago

What a quaint rebuttal.

Comment by weird-eye-issue 1 day ago

You didn't even provide anything logical to rebute in the first place. So my comment was not a rebuttal, just an observation

Comment by 2 days ago

Comment by segmondy 2 days ago

"We deployed GLM 5.3 with a 1,048,576-token context window, but the KV cache pool on our prefill GPUs only had room for 681,280 tokens. We were aware of this mismatch before launch. "

Did they advertise it as 1,048,576 token when they only had room for 681,280 tokens?

Comment by weird-eye-issue 2 days ago

Next sentence: "We expected the engine to return an error for any prompt it could not process, and our long-context tests returned successful responses, so we did not believe this to be an issue."

Comment by jacquesm 2 days ago

Which is pointing the finger at Sglang, who also weren't responsible for this.

At a minimum someone should have realized during testing that their utilization figures are off by 40%.

A much better title would be "Cloudflare configuration error leaked data between user sessions"

Comment by weird-eye-issue 2 days ago

I mean they are responsible for this. It's definitely a bug on their end.

Comment by segmondy 2 days ago

Doesn't matter, they could have marketed it as 1 million token window, you would then infer, get to 600k and get an error. You won't be able to finish your work, and you won't get credit for 600k tokens.

Comment by weird-eye-issue 2 days ago

They thought it worked up to 1m token window

Comment by segmondy 2 days ago

why would they think that? I'm not a pro, but I know you can't serve more than kv cache pool that you have. If you want to run concurrent requests, you need to have more kv cache pool than your context window. The entire thing is weird, my bet is they were thinking most people will be using about 100k cache, compacting, etc and not nearing 600k ever.

Comment by hedgehog 1 day ago

See my other comment, this is likely only for the prefill GPU pool, a normal 1M token session would work fine. I think Cloudflare should probably link an explainer on how model serving works at the top of the post because a lot of people are not familiar at that level of detail.

Comment by 2 days ago

Comment by freakynit 2 days ago

Bro, I had to read this sentence in the context of the previous one, 3 fcking times.. and it sill does not make any sense to me.

Comment by Graziano_M 2 days ago

Sounds like they are saying they tested with a long prompt and just tested for a failure, but the test likely would have seen that same KV cache leakage and just interpreted it as success.

Comment by freakynit 2 days ago

thank you...

Comment by lumzell 1 day ago

[flagged]

Comment by SillyUsername 2 days ago

So they knowingly deployed a configuration with an overflow risk, much like writing code with a buffer overflow exploit.

They assumed that it wasn't like an overflow exploit, despite the fact that's exactly what they'd set up to happen, on the grounds of thinking the equivalent of, "oh this probably uses smart pointers, we'll be fine".

That's how I read it anyway.

Comment by hedgehog 2 days ago

I read that as you can only do a single prefill up to 681k tokens, separate from cache hit or generation. I think people try pretty hard to avoid a cache miss on sessions that long and rarely do standalone requests that big so the situation triggering this condition is rare. If you run a normal coding session with many turns it would get to 1M ok.

Comment by embedding-shape 1 day ago

Shit happens, this is normal. However, this:

> We were aware of this mismatch before launch

Isn't normal. Am I misunderstanding or are they openly confessing they've stopped caring about quality at all? Why would you launch when you know it's wrong?

Comment by nijave 1 day ago

Maybe they forgot to run this one by the lawyers before posting. I'm surprised they'd publicly admit to that

Comment by kami23 2 days ago

I like this RCA a lot more than most. I appreciate the ownership and clear explanation of why their testing did not catch this bug.

Also impressed with the speed to address the issue unplug the model and then pretty quick remediation, the speed to remediation matters less to me, but good to see they can act quickly on their platform to kill the serving of the model.

Comment by 0xbadcafebee 2 days ago

I kind of forgot about the shared tenancy attack model. I think I was assuming/hoping the software was magically isolating my tokens, when in reality that's impossible for shared tenants. There's whole classes of attacks on things like shared cache, before we get to the LLM-specific features and potential bugs. Enterprises with highly sensitive data should really be on non-shared hosts.

Comment by Alex13192 2 days ago

[flagged]

Comment by adg001 2 days ago

Please consider to update the title in: Cross-request KV cache exposure in the AI model workers

Comment by thehamkercat 2 days ago

Other providers probably don't even know/care that this is happening

Comment by 6thbit 2 days ago

Last year it happened to me more than once that dictating something in chatgpt would become a completely different message after processing, not in a misheard type of way but just a separate conversation more easily explained by the same type of KV cache issue here.

Comment by kami23 2 days ago

I think in the last year I've had it happen once where I seemingly got someone else's response, it was very odd. I rewound and got what I expected. It was correlated to Anthropic's roll out of new models at the time which always seems to cause instability in their apis.

Comment by kolanos 2 days ago

Other providers might have better isolated KV stores?

Comment by jmalicki 2 days ago

I've had this happen with ChatGPT too.

Comment by jmalicki 1 day ago

(Some random internet user pasted me things that were clearly from my ChatGPT session, he identified me because it had links to my github). So it wasn't a hallucination, it appeared to be some sort of KV cache leakage, though I obviously don't know the true root cause of the bug.

Comment by blarelewis741 1 day ago

[flagged]

Comment by Orygin 2 days ago

I wonder if the chatgpt shirtless guy is from the same kind of issue

Comment by ComputerGuru 1 day ago

Read this last night. I was completely thrown off when I read this line:

> We expected the engine to return an error for any prompt it could not process, and our long-context tests returned successful responses, so we did not believe this to be an issue

Surely “we expected and error but got a successful response” merits investigating rather than moving on?

Comment by octoberfranklin 2 days ago

Upshot: even though sglang is written in Rust, they still got burned by undefined behavior from uninitialized memory.

Comment by himata4113 1 day ago

This is entirely self inflicted as SGLang is optimized for (near) maximum performance. Another issue is that this is dealing with a device driver rather than system memory which rust has very little control over, as in there is no native implementation in rust that allows you to address multiple-memory buffers. Think how old games had 16 different memory blocks all starting at 0 since the cpu could only address 65 kilobytes.

Comment by armcat 1 day ago

A much better title for this would be something like "Cross-Tenant KV Cache Exposure in Shared LLM Inference: Analysis and Remediation". As others have pointed out there is no need to mention GLM-5.3 in the title. As someone that has been using GLM-5.3 I immediately thought there is a cause for concern here, only to find out there isn't.

Comment by yababa_y 1 day ago

Even cloudflare being unable to deploy this technology correctly makes me think there are some serious failures of knowledge transmission happening somewhere between theoreticians and practicians.

Comment by himata4113 1 day ago

cloudflare has never been known to deploy stable software especially for features early in their lifetime

Comment by alxsm 1 day ago

What worries me is what was actually in those leaked prompts. This is a million-token context model, and people use that context to paste whole repos and configs, .env files included. So the realistic worst case isn't someone's chat text, it's someone's API keys. The write-up explains the root cause well, but doesn't say whether the customers whose prompts ended up in other people's responses were notified.

Comment by reassess_blind 2 days ago

Reminds me of a bug I found in a very popular browser testing service that spun up iOS vm's/devices for on-device testing.

I copied the clipboard from the device, and my clipboard was full of another users credentials that they were obviously trying to paste into their own VM. Their devices were leaking clipboard data to each other.

I reported the vulnerability and asked if there was any bounty program (I wasn't looking for vulnerabilities but didn't hurt to ask), to which they said no, but they could send me a signed letter thanking me of my contributions. I said, great, thanks - and never heard back.

All pretty disappointing.

Comment by 2 days ago

Comment by sauravadhk 2 days ago

It seems more specific to the platform than the model. Maybe Cross-request KV cache exposure in the AI model workers would be a better fitting title?

Comment by 8cvor6j844qw_d6 2 days ago

Interesting. That might explain the few times I've received completely unrelated responses from a certain provider's API.

Comment by nitishr 2 days ago

I'm just surprised more serverless providers haven't found (or publicly disclosed) similar issues, yet.

Comment by xmcqdpt2 2 days ago

Six months ago I had a very basic prompt to Claude at work return very specific, unrelated information that looked very much like it could have come from someone else in the company. We raised an incident and were told by Anthropic (in a 100% Claude generated email) that this wasn't possible and that AI sometimes makes mistakes like that. I'm not sure how much they investigated but apparently their email was enough for legal and compliance so eh.

Comment by totetsu 2 days ago

Is anyone even offering single tenant inference as a service?

Comment by dools 2 days ago

That’s just renting GPU clusters

Comment by imhoguy 2 days ago

Still you may get traces of previous tenant if things are not cleaned up properly.

Comment by paaloeye 2 days ago

Is that a new class of tenant isolation vulnerability?

Comment by dnautics 2 days ago

Seems not? Just good old gpu allocations colliding

Comment by 2 days ago

Comment by lianbuilds 2 days ago

[flagged]

Comment by yunohn 1 day ago

> We were aware of this mismatch before launch. We expected the engine to return an error for any prompt it could not process, and our long-context tests returned successful responses, so we did not believe this to be an issue.

This is insane? They thought it would return errors for long context, which didn’t happen, and they proceeded assuming it was fine? Didn’t even investigate the known misconfiguration and issue before going to production?

Comment by brcmthrowaway 1 day ago

I should probably learn how inference is served at scale. Any have a zero to one reference for this?

Comment by atrokhymchuk 2 days ago

CloudBleed huh?

Comment by robrogers-assis 1 day ago

[flagged]

Comment by sarmedshafi 1 day ago

[flagged]

Comment by arbor-group 1 day ago

[flagged]

Comment by deeprouter 1 day ago

[flagged]

Comment by MichaelTestGrid 2 days ago

[flagged]

Comment by ankur_misra 1 day ago

[flagged]

Comment by yuyuyu123 2 days ago

[flagged]

Comment by dduckworth 2 days ago

[flagged]

Comment by a-n-i 2 days ago

[flagged]

Comment by RaffaelKuhn 2 days ago

[flagged]