Cloudflare는 서버리스 AI 플랫폼의 캐시 처리 버그로 인해 GLM-5.3 모델 배포의 최소 155명의 사용자가 어떻게 다른 고객의 메시지와 출력의 일부가 포함된 응답을 받게 되었는지 설명하는 자세한 사고 보고서를 게시했습니다. SGLang 오픈 소스 추론 엔진 프로젝트와 함께 조정된 공개로 10월 26일에 발표된 이 보고서는 다중 테넌트 LLM 서비스 배관 내부에 대한 보기 드문 공개 시각을 제공하고 GPU 메모리의 보안 가정에 대한 경고를 제공합니다.

누출을 발견한 방법 이 이야기에 대한 자세한 내용은 최신 AI 동향를 참조하세요.

Cloudflare에 따르면 Knostic의 보안 연구원 Gadi Evron은 2026년 9월 8일 HackerOne 버그 현상금 프로그램을 통해 회사에 경고했습니다. Evron은 Cloudflare의 Workers AI 플랫폼에서 GLM-5.3 모델로 전송된 매우 긴 프롬프트가 때때로 다른 사용자 세션에 속한 텍스트를 반환한다고 보고했습니다. Cloudflare는 다음날 아침 문제를 재현하고 같은 날 모델을 비활성화했으며 수정 사항을 배포한 후 9월 9일에 모델을 복원했습니다.

영향을 받은 모델은 @cf/zai-org/glm-5.3입니다. 이는 Cloudflare가 회사의 서버리스 추론 플랫폼인 Workers AI를 통해 제공하는 Z.ai의 에이전트 코딩 모델입니다. Cloudflare는 플랫폼에 호스팅된 다른 모델이 영향을 받지 않았음을 확인했습니다.

실제로 무슨 일이 일어났는가

이 사건은 두 가지 중복되는 문제, 즉 작동 문제와 엔진 자체 문제로 거슬러 올라갑니다.

첫째, 잘못된 구성입니다. Cloudflare는 1,048,576개 토큰 컨텍스트 창을 갖춘 GLM-5.3을 배포했지만 사전 채우기 GPU의 키-값(KV) 캐시 풀에는 681,280개 토큰을 위한 공간만 있었습니다. 회사는 출시 전에 이러한 불일치를 인지했으며 추론 엔진이 길이가 초과된 요청을 안전하게 거부할 것으로 기대했습니다.

둘째, 엔진 버그. 분리된 사전 채우기/디코드 모드(Workers AI가 사용하는 아키텍처)에서 하나의 GPU 풀이 프롬프트를 처리하고 결과 KV 캐시를 응답을 생성하는 별도의 GPU 풀에 전달하는 방식에서 SGLang은 길이 초과 요청을 잘못 처리했습니다. 풀에 맞지 않는 프롬프트는 내부적으로 거부된 것으로 표시되었으며 단일 토큰 자리 표시자로 대체되었습니다. 그러나 요청을 중단하고 클라이언트 오류를 ​​반환하는 대신 사전 채우기 단계에서는 자리 표시자 프롬프트에 대한 KV 캐시를 생성하고 이를 디코드 노드로 전송한 다음 동일한 메모리 페이지를 공유하는 이전 요청의 남은 데이터가 혼합된 응답을 생성했습니다.

결과: 8월 27일부터 9월 9일 사이에 모델을 사용하는 소수의 고객이 자신의 요청 직전에 이루어진 다른 고객의 요청에 대한 데이터가 포함된 응답을 받았습니다. 총 155개의 응답이 영향을 받았는데, Cloudflare는 모두 681,280개 이상의 토큰을 메시지로 표시하는 것으로 확인했습니다.

고의적인 착취의 증거 없음

Cloudflare는 자체 테스트와 연구원의 검증 요청을 제외하고 영향을 받은 요청은 일반적인 장기 컨텍스트 사용과 시기 및 양이 일관되었으며 회사는 누군가 의도적으로 버그를 악용했다는 증거를 찾지 못했다고 밝혔습니다. 영향을 받은 모든 요청이 소형 풀의 용량을 초과했기 때문에 노출 창은 엄격하게 제한되었습니다. 이는 문제를 일으킨 잘못된 구성에서 비롯된 희망이었습니다.

해결 방법: 더 큰 풀과 더 안전한 오류 경로

수정은 오류의 두 계층 모두에서 작동했습니다. Cloudflare는 GLM-5.2 구성과 일치하도록 GLM-5.3 배포를 재구성하여 이제 사전 채우기 KV 풀이 약 204만 개의 토큰을 보유할 만큼 충분한 GPU 메모리를 확보했습니다. 이는 모델의 1,048,576개 토큰 컨텍스트 길이의 대략 두 배입니다. 이제 컨텍스트 창에 맞는 프롬프트가 항상 풀에 맞습니다.

그러나 회사는 또한 풀 크기에만 의존하는 것은 취약하다고 강조했습니다. 즉, 양자화, 텐서 병렬성, CUDA 그래프 크기 또는 향후 모델 버전의 변경으로 인해 풀 크기가 자동으로 변경될 수 있습니다. 따라서 SGLang의 거부 경로 자체도 패치하여 자리 표시자에 대한 캐시를 생성하고 전송하는 대신 거부된 요청이 완전히 중단되도록 보장했습니다. 두 가지 변경 사항 모두 모델이 복원되기 전에 연구원의 재현 스크립트와 Cloudflare의 자체 카나리아 마커 테스트를 통해 검증되었으며 수정 사항은 SGLang 관리자에게 업스트림으로 제공되었습니다.

공유 GPU 메모리가 보안 문제인 이유

보고서는 많은 애플리케이션 개발자를 놀라게 할 관행에 대해 설명합니다. 추론 엔진은 일반적으로 다음 요청이 단순히 덮어쓰기 때문에 요청 사이의 KV 캐시 페이지를 0으로 만들지 않습니다. 이는 추론 엔진 전반에 걸쳐 흔히 발생하는 고의적인 성능 절충이지만, 이 사건에서 알 수 있듯이 해당 페이지를 완전히 덮어쓰기 전에 응답을 생성할 수 있는 경로는 성능 최적화를 데이터 누출 벡터로 바꿉니다.

이 공개 내용은 개발자 커뮤니티에 전달되었습니다. 해당 기사는 몇 시간 만에 Hacker News에서 123개 지점에 도달했으며, 오류 모드(손상된 상태에서 조용히 진행되는 대신 크게 실패해야 하는 요청)가 어떻게 분산 시스템 엔지니어링의 고전적인 교훈을 반영하는지에 대한 토론이 이루어졌습니다.

AI 인프라에 대한 더 폭넓은 교훈

이번 사건은 AI 애플리케이션의 보안 경계가 이제 추론 인프라까지 깊숙이 확장되었음을 상기시켜줍니다. 다중 테넌트 모델 서비스는 공유 가속기, 공유 캐시 풀, 그리고 분리된 사전 채우기 및 원격 직접 메모리 액세스와 같은 점점 더 이국적인 아키텍처를 통해 많은 고객의 데이터를 집중시킵니다. 모델의 광고된 컨텍스트 창과 이를 제공하기 위해 프로비저닝된 물리적 용량 간의 미묘한 불일치는 테넌트 격리를 위반하기에 충분했습니다.

서버리스 AI 플랫폼을 기반으로 구축하는 기업의 경우 Cloudflare 보고서에서 얻을 수 있는 이점은 두 가지입니다. LLM 서비스의 테넌트 격리 버그는 실제로 존재하며 프로덕션에서 이미 발생했으며, 공급업체의 응답 시간(보고 후 비활성화까지 24시간 이내, 수정 및 복원까지 하루 미만)은 민감한 프롬프트를 처리하는 모든 공급자의 요구에 대한 성실성의 표준입니다.

---

AI 최신 소식

최신 AI 뉴스, 분석 및 혁신을 한 곳에서 확인하세요.

AI 뉴스 더 보기 →