vLLM의 V1 추론 엔진에서 logprobs 저장용 텐서가 초기화되지 않은 채 남는 결함이 vLLM 보안 권고 GHSA-rhcx-5729-88vg로 공개되었습니다. 결함의 전제는 프리픽스(프롬프트 접두어) 계산을 외부 KV 커넥터에 맡기는 구성에서 만들어지므로, 프리픽스 캐시나 분리형 pre-fill/decode(P/D) 구성을 사용하는 멀티테넌트 추론 서비스라면 점검이 필요합니다. 다만 수정 여부는 확인된 자료 사이에서 서로 다른 신호를 주기 때문에, 패치 버전을 단정하기보다 공급자 권고의 최신 상태를 기준으로 판단해야 합니다.
개요

- CVE-2026-116180은 vLLM 0.8.5부터 0.31.0 직전 버전까지(from 0.8.5 before 0.31.0)의 서비스 거부(DoS) 결함으로 기록되었습니다.
- vllm/v1/outputs.py의 LogprobsTensors.empty_cpu()가 백킹 int32 텐서를 torch.empty()로 할당해 초기화되지 않은 상태로 둡니다.
- V1 모델 러너는 요청의 프리픽스가 KV 커넥터에 의해 이미 계산된 것으로 보고된 프롬프트 위치에 logprobs를 기록하지 않습니다.
- 초기화되지 않은 값이 후속 처리 경로로 전달되면서 프로세스 장애 또는 서비스 불가 상태가 유발될 수 있습니다.
- 클라이언트 요청 하나가 이 조건을 만족시킬 수 있어, 한 테넌트의 요청이 다른 테넌트를 포함한 서비스 가용성을 저해하는 교차 테넌트(cross-tenant) DoS로 분류됩니다.
- 조사 시점에 공개 PoC, 야생 악용 사례, CISA KEV 등재 여부는 확인되지 않았습니다.
- 수정 릴리스 여부는 CVE 레코드와 GHSA 권고문이 서로 다른 신호를 주고 있어 제공된 근거만으로는 확정되지 않았습니다.
영향 범위
- 버전 범위: CVE 레코드와 VulnCheck 권고가 지정한 대상은 vLLM 0.8.5부터 0.31.0 직전 버전입니다.
- LMCacheConnectorV1(vllm/distributed/kv_transfer/kv_connector/v1/lmcache_connector.py): 임의의 프리픽스 캐시 히트에서 조건이 발생합니다.
- NixlConnector: 분리형 P/D(pre-fill/decode) 구성의 디코드 측에서 조건이 발생합니다.
- 위 커넥터들 외에도 '프리픽스가 외부에서 계산된 것으로 보고되는' 동일 조건을 만족하는 커넥터 사용 구성이 대상이 될 수 있습니다.
실질적인 노출을 가르는 것은 버전 번호 자체보다 커넥터 구성입니다. 버전이 영향 범위 안에 있더라도 prompt_logprobs를 사용하는 요청 경로에서 프리픽스 계산을 외부 커넥터가 수행했다고 보고되는 구성이 없으면 이 결함의 발생 조건은 성립하지 않습니다. 반대로 커넥터를 새로 도입하거나 배포 형태를 바꾼 구성은 권고 범위를 확인하는 쪽이 안전합니다. 다만 어떤 커넥터까지 조건에 해당하는지에 대한 완전한 목록은 제공된 근거에 포함되어 있지 않습니다.
기술적 분석
초기화되지 않은 텐서가 남는 지점
LogprobsTensors.empty_cpu()는 백킹 int32 텐서를 torch.empty()로 할당합니다. torch.empty()는 메모리만 확보할 뿐 값을 채우지 않으므로, 이후 어떤 경로도 해당 위치를 명시적으로 기록하지 않으면 텐서는 초기화되지 않은 값을 그대로 보유합니다. V1 모델 러너는 프리픽스가 외부 커넥터에서 이미 계산된 것으로 보고된 프롬프트 위치에 logprobs를 쓰지 않고 넘어갑니다. 그 결과 prompt_logprobs를 요청한 클라이언트에 대해 초기화되지 않은 int32 값이 logprobs 파이프라인의 후속 처리로 전달됩니다.
조건을 만족시키는 경로
- LMCacheConnectorV1은 프리픽스 캐시 히트 시점에 조건을 발생시킵니다.
- NixlConnector는 분리형 P/D 구성의 디코드 측에서 조건을 발생시킵니다.
두 커넥터는 조건이 나타나는 지점이 다르지만 전제는 같습니다. 제공된 권고가 밝힌 발생 조건은 요청의 프리픽스가 외부 커넥터에서 계산된 것으로 보고된 프롬프트 위치에 logprobs가 기록되지 않는다는 것입니다. 따라서 prompt_logprobs를 외부 클라이언트에 노출하는 API와 외부 계산 커넥터를 함께 사용하는 구성이 점검 후보로 올라갑니다. 이 범위는 확인된 조건에서 읽은 해석이며, 권고문이 지정한 커넥터 외의 구성까지 조건에 포함되는지는 제공된 근거로 확인되지 않았습니다.
수정 상태가 갈리는 지점
- CVE 레코드는 vLLM 0.8.5부터 0.31.0 직전 버전까지를 영향 범위로 기록합니다. 이 표현만 읽으면 0.31.0에서 정리가 끝난 것처럼 보입니다.
- 반면 GHSA 권고문은 수정이 아직 업스트림에 들어오지 않았고 현재 main 브랜치도 여전히 영향받는다고 밝힙니다.
- 두 신호를 함께 보면 '0.8.5 이상 0.31.0 미만'이라는 범위와 '범위 끝 버전에서 수정이 완료됐다'는 주장은 같은 근거로 뒷받침되지 않습니다. 제공된 자료만으로는 확정된 패치 버전이나 패치 커밋을 특정할 수 없습니다.
main을 따르거나 커스텀 빌드를 쓰는 환경에서는 어떤 빌드가 수정을 포함하는지도 제공된 근거로 확인되지 않습니다. 이 한계는 버전 번호만으로는 대응 범위를 정할 수 없다는 뜻입니다.
악용 현황과 확인되지 않은 부분
- 공개 PoC나 재현 스크립트의 존재 여부는 확인되지 않았습니다.
- 야생에서의 실제 악용 사례도 조사에서 확인되지 않았습니다.
- CISA KEV 등재 여부도 조사 시점에 확인되지 않았습니다.
- 정확한 트리거 요청 구조(프롬프트 길이, 파라미터 조합)와 크래시의 상세 동작은 제공된 근거에 서술되어 있지 않습니다.
- 확정된 수정 릴리스 여부와 커넥터별 임시 완화 설정도 제공된 근거에서 확인되지 않았습니다.
제공된 조사 범위에서 공개 PoC나 실제 악용 사례를 확인하지 못했다는 기록은, 악용이 일어나고 있지 않다는 증거가 아니라 확인 범위가 그 지점까지 미치지 못했다는 상태로 읽어야 합니다. 반면 권고문과 CVE 레코드가 지정한 발생 조건은 요청 하나의 프리픽스가 외부 커넥터에서 계산된 것으로 보고되는 형태입니다. 따라서 공유·멀티테넌트 환경에서는 확인되지 않은 악용 정황을 전제로 삼기보다, 노출된 커넥터 구성과 prompt_logprobs 제공 여부라는 확인된 조건 자체를 기준으로 우선순위를 정하는 편이 합리적입니다.
대응 방안
우선 확인
- 배포된 vLLM 버전과 빌드 출처를 확인해 CVE 레코드가 지정한 0.8.5 이상 0.31.0 미만 범위에 해당하는지 봅니다.
- 해당 범위 버전에서 LMCacheConnectorV1 또는 NixlConnector(분리형 P/D)를 사용하는 구성을 먼저 식별합니다.
- prompt_logprobs를 외부 클라이언트에 노출하는 엔드포인트가 함께 있는지 확인합니다.
대응 순서
- 공유·멀티테넌트 추론 서비스라면 위 조건을 만족하는 구성을 우선 식별하고, GHSA 권고문과 공급자 안내가 밝히는 최신 수정 상태를 확인합니다. 0.31.0 이상으로 업그레이드하면 해결된다는 권고는 제공된 근거로 확정할 수 없습니다. CVE 레코드는 0.31.0 직전까지를 영향 범위로 기록하지만, GHSA 권고문은 수정이 아직 업스트림에 들어오지 않았고 현재 main도 여전히 영향받는다고 밝히기 때문입니다.
- 제공된 근거에는 확정된 수정 릴리스도, 커넥터별 임시 완화(워크어라운드) 지침도 포함되어 있지 않습니다. 따라서 특정 설정이나 특정 빌드가 안전하다고 단정할 수 없고, 판단의 기준은 공급자 권고의 최신 수정 상태입니다.
탐지 지침의 한계
공개된 탐지 지침이나 IOC는 제공된 근거에서 확인되지 않았습니다. 정확한 트리거 요청 구조와 크래시의 상세 동작도 서술되어 있지 않습니다. 따라서 이 결함 전용으로 검증된 탐지 시그니처나 모니터링 규칙은 본 원고에서 다루지 않습니다.
참고자료
- Cross-tenant DoS via uninitialized LogprobsTensors with prompt_logprobs
- CVE-2026-116180: vLLM from 0.8.5 before 0.31.0 Cross-Tenant DoS via Uninitialized LogprobsTensors
- vLLM from 0.8.5 before 0.31.0 Cross-Tenant DoS via Uninitialized LogprobsTensors
함께 읽으면 좋은 글
- designer-mcp 경로 순회 취약점 CVE-2026-116045: 태그 없는 저장소를 커밋 기준으로 판별하는 법
- Atlassian 다중 제품 임의 파일 접근 취약점 CVE-2026-21589: 사전 인증 파일 읽기 해석과 공개 점검 도구 범위
- OctoAlly CVE-2026-112147: 1.0.87 이하로 등록된 정보 노출, 관련 커밋은 HOST 해제와 local-only 유지를 경고
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!