Cloudflare는 Workers AI 플랫폼을 통해 제공되는 AI 모델 GLM-5.3에서 사용자 데이터 노출(Tenant Isolation Issue)을 초래한 보안 취약점을 수정했다고 발표했습니다. 이 문제는 모델 설정과 사용된 추론 엔진 간의 기술적 간섭으로 인해 이전 사용자의 요청 데이터 일부가 다른 사용자에게 유출되는 결과를 초래했습니다.
사고 세부 정보 및 영향 범위
이 문제는 2026년 8월 27일에 시작되었으며, 2026년 9월 8일 Knostic의 보안 연구원 Gadi Evron이 HackerOne 프로그램을 통해 발견했습니다. Cloudflare는 이 취약점이 단 155개의 응답에만 영향을 미쳤으며, 이 응답들은 모두 681,280 토큰을 초과하는 매우 긴 프롬프트(Prompts)와 관련이 있었다고 설명했습니다.
회사는 외부 세력에 의한 이 취약점의 의도적인 악용 증거가 없음을 밝히며 사용자들을 안심시켰으며, 문제가 GLM-5.3 모델에만 국한되었고 Workers AI 플랫폼에서 호스팅되는 다른 모델로는 확장되지 않았음을 확인했습니다.
기술적으로 유출은 어떻게 발생했는가?
이 유출의 원인은 두 가지 기술적 요인의 결합에 있습니다. 첫 번째는 설정 오류(Misconfiguration)로, GLM-5.3 모델이 1,048,576 토큰의 컨텍스트 창(Context Window)으로 출시되었으나, prefill 프로세스를 위해 할당된 GPU의 키-값 캐시 풀(KV cache pool) 공간은 681,280 토큰까지만 수용할 수 있었습니다.
두 번째 요인은 오픈 소스 추론 엔진인 SGLang의 소프트웨어 버그(Bug)입니다. Cloudflare가 사용하는 분리형 모드(Disaggregated mode) 환경에서, 가용 메모리 용량을 초과하는 요청이 들어오면 엔진은 해당 요청을 단 하나의 토큰으로 구성된 "플레이스홀더(Placeholder)"로 교체했습니다. 요청을 거부하고 클라이언트에게 오류를 보내는 대신, prefill 프로세스는 이 플레이스홀더를 decode 노드로 전송했습니다. decode 노드는 메모리가 새로운 데이터로 완전히 업데이트되었다고 잘못 가정했으나, 실제로는 다른 사용자의 요청에서 온 오래된 메모리 페이지(Cache pages)를 여전히 포함하고 있었고, 이로 인해 해당 데이터가 새로운 사용자의 응답에 나타나게 되었습니다.
시정 조치 및 지속 가능한 솔루션
Cloudflare는 모델을 격리하고 결함을 수정하기 위해 다음과 같은 즉각적인 조치를 취했습니다:
- 설정 수정: KV cache 풀 크기를 필요한 컨텍스트 창의 두 배(약 2.04백만 토큰)로 늘려 요청이 소프트웨어 거부 경로에 도달하지 않도록 보장했습니다.
- SGLang 엔진 패치: 네트워크를 통한 데이터 전송이 시작되기 전 매우 이른 단계에서 유효하지 않은 요청을 거부할 수 있도록 SGLang 개발자들과 협력했습니다.
- 보안 강화: 전송되는 데이터의 무결성을 확인하고 노드 간의 데이터 경합(Race conditions)을 방지하기 위해 모든 SGLang 배포에 추가적인 개선 사항을 적용했습니다.
이 뉴스가 중요한 이유
이번 사고는 멀티테넌트(Multi-tenant) 클라우드 AI 환경에서의 복잡한 보안 과제를 조명합니다. 기업들이 효율성과 속도를 높이기 위해 분리형 추론(Disaggregated Inference) 구조로 전환함에 따라, "메모리 페이지 소유권(Memory page ownership)" 관리가 매우 중요해지고 있습니다. prefill 노드와 decode 노드 간의 조정 오류는 공유 메모리를 통한 민감한 데이터 유출로 이어질 수 있으며, 이는 분산 시스템에서 데이터 무결성(Data Integrity) 검증이 전통적인 데이터 암호화만큼이나 중요한 보안 필수 요소임을 시사합니다.