무슨 일이 있었나
vLLM의 OpenAIServing은 HTTP X-Request-Id 헤더를 request_id에 그대로 복사하며, P2pNcclConnector.parse_request_id는 허용 목록, 스킴 검사, IP 리터럴 차단 없이 관대한 정규식을 통해 임의의 host:port를 추출합니다. API 호출자는 헤더에 디코드 주소를 포함시켜 커넥터를 실행하는 프리필 워커가 공격자 호스트로 아웃바운드 ZMQ 연결을 강제로 수행하게 하고, NCCL 커뮤니케이터 unique_id를 공유한 후, 대상 요청의 KV-캐시를 ncclSend로 공격자에게 전송하도록 할 수 있습니다.
왜 중요한가
HTTP 헤더만 사용하여, 프리필 워커에 접근할 수 있는 호출자(유효한 API 키 보유, 또는 --api-key 미설정 시 키 없이)는 해당 워커가 처리하는 모든 요청의 전체 KV-캐시(프롬프트 텍스트 및 프리픽스 캐시된 히든 상태)를 탈취할 수 있으며, 응답하지 않는 호스트로 워커를 차단하여 서비스 거부 벡터로 활용할 수 있습니다. CVE-2026-116176, CVSS 8.2, CWE-918.
공격 경로
공격자 제어 host:port를 포함한 X-Request-Id로 /v1/completions 또는 /v1/chat/completions 요청을 구성하세요; 프리필 워커는 아웃바운드로 연결하여 KV-캐시 텐서를 유출합니다.
영향받는 시스템
P2pNcclConnector 실행 시 vLLM >= 0.9.2, < 0.24.0 (P2pNcclConnector와 함께 --kv-transfer-config 필요).
완화 방안
vLLM 0.24.0으로 업그레이드하세요 (PR #44854에서 영향받는 커넥터 제거됨); 또한 P2pNcclConnector가 활성화된 동안 X-Request-Id를 임의 UUID로 대체/교체하고 커넥터의 remote_address를 운영자 구성 CIDR 허용 목록으로 검증하세요.