(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.
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.
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.
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. It's always one bug away from leaking my tokens to attackers. The more we rely on shared tenancy inference, the more important it's going to be to harden the hardware and the software. Hackers will be scrutinizing both to find new exploits for LLM providers.
"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?
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."
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.
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.
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.
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.
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.
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".
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?
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.
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".
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.
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.
Most people will read this headline and assume Cloudflare is intentionally trying to squash open-weight models.
If that isn't your intent, you really ought to change the title ASAP. Time is ticking before tech journalists and social media decide to craft a narrative your public relations department isn't going to be happy about.
> 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.
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.
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.
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.
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.
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.
> A prompt that did not fit the pool was internally marked as rejected and replaced with a one-token placeholder, but instead of aborting the request and returning a client error, prefill generated the KV cache for the placeholder prompt and transferred it to the decode node.
Claude-dar going off here for me. Earlier Claudes loved self healing things for you like this. Claude today still hates blowing things up. Why blow up when you can proceed with nonsense state?
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.
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.
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.
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.
87 comments
[ 1.3 ms ] story [ 24.0 ms ] threadAlso 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.
Did they advertise it as 1,048,576 token when they only had room for 681,280 tokens?
At a minimum someone should have realized during testing that their utilization figures are off by 40%.
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.
> 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?
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.
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.
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?
Most people will read this headline and assume Cloudflare is intentionally trying to squash open-weight models.
If that isn't your intent, you really ought to change the title ASAP. Time is ticking before tech journalists and social media decide to craft a narrative your public relations department isn't going to be happy about.
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.
"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.
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
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.
Claude-dar going off here for me. Earlier Claudes loved self healing things for you like this. Claude today still hates blowing things up. Why blow up when you can proceed with nonsense state?