Cloudflare, GLM-5.3 Workers AI에서 요청 간 KV 캐시 노출 확인, 155개 응답에 다른 사용자 데이터 섞여
- 2026년 8월 27일부터 9월 9일까지 GLM-5.3 Workers AI 모델에서 요청 간 KV 캐시가 노출돼 155개 응답에 직전 다른 사용자 요청의 데이터가 섞였고, 영향받은 프롬프트는 모두 681,280 토큰을 넘김
- 서비스 컨텍스트 윈도는 1,048,576 토큰인데 prefill GPU의 KV 캐시 풀은 681,280 토큰만 수용했고, Cloudflare는 이 불일치를 출시 전에 알았으나 엔진이 초과 요청에 에러를 반환할 것으로 보고 넘김
- SGLang은 풀에 안 들어가는 프롬프트를 1토큰 placeholder로 바꿔 prefill을 돌린 뒤 그 캐시를 decode 노드로 전송했고, decode 노드는 이전 요청의 캐시 페이지가 남은 상태로 응답을 생성함
- 수정으로 prefill KV 풀을 약 204만 토큰까지 늘려 거부 경로가 아예 생기지 않게 했고, 거부 대기 요청을 admission 큐에서 원래 에러로 종료시키는 패치를 SGLang에 #38704로 제출함
- 고의 악용 정황은 발견되지 않았고 다른 Workers AI 모델은 영향받지 않았으며, 모델은 9월 9일 복구됨
Hacker News opinions
다른 제공자들도 비슷한 일이 벌어지는지 모르거나 신경 안 쓸걸. 우리야 운 좋게 공개된 것뿐이고.
작년에 chatgpt에 받아쓰기 한 게 처리 후에 완전 다른 메시지로 바뀐 적이 여러 번 있었어. 오인식이 아니라 아예 별개 대화가 튀어나오는 식이라 이 KV 캐시 문제로 설명될 것 같더라.
chatgpt에서 셔츠 벗은 남자 나온 사건도 같은 종류 아닐까 싶네.
이 RCA는 진짜 마음에 든다. 테스트가 왜 못 잡았는지까지 인정해서 설명했고, 모델 내리는 속도도 빨랐음.
어느 제공자 API에서 완전 무관한 응답 받은 적 있는데 이것 때문일 수도 있겠다.
공유 테넌트 공격 모델을 까먹고 있었어. 토큰이 알아서 격리되겠거니 했는데 공유 캐시에는 공격 클래스가 따로 있고, 민감한 데이터 다루는 기업은 비공유 호스트로 가야 함.
1,048,576 토큰이라고 광고해놓고 실제로는 681,280 토큰만 들어간다는 거야?
바로 다음 문장에 엔진이 에러를 낼 줄 알았다고 써 있잖아. 681k까지는 단일 prefill이 되고, 그렇게 긴 세션은 캐시 미스를 피하려고들 해서 독립 요청이 드물다는 뜻으로 읽힘.
결국 오버플로 위험이 있는 설정을 알면서 배포한 거임. 스마트 포인터 쓰겠지 하고 버퍼 오버플로 짜둔 거랑 뭐가 달라.
이거 테넌트 격리 취약점의 새 클래스인가? 싶었는데, 그냥 GPU 할당이 겹친 오래된 문제임.
GLM-5.3 문제는 아니지. SGLang이랑 Cloudflare 버그고 모델은 무관한데 제목에 왜 Z.AI를 끌어들여.
모델 버그라고 한 적 없고 설정 문제와 SGLang 버그라고 본문에 다 적었음. 고객이 어느 엔드포인트인지 알아야 해서 제목에 넣은 거고, 'GLM-5.3'이 아니라 'GLM-5.3 Workers AI 모델'이라고 썼음.
캐시 얘기면 모델 자체랑 상관없다는 건 뻔하고, 제목 덕에 이 모델 안 쓴 사람은 영향 없다는 걸 바로 알 수 있음.
단일 테넌트 추론 서비스 파는 데 있나? 그건 그냥 GPU 클러스터 임대하는 거고, 정리 제대로 안 하면 이전 테넌트 흔적은 남음.
예전에 인기 브라우저 테스트 서비스에서 iOS VM 클립보드가 다른 사용자 자격증명으로 차 있던 버그를 찾은 적 있어. 제보했더니 현상금은 없고 감사 편지 보내주겠다고만 하더라.
6개월 전에 Claude에 평범한 프롬프트를 넣었는데 회사 다른 사람 데이터로 보이는 게 나왔어. Anthropic은 불가능하다고 답했고 그 메일도 Claude가 쓴 거였음.
서버리스 업체들이 이런 걸 아직 못 찾았거나 찾고도 공개 안 한 게 더 신기함.