A request identifier should correlate logs, not choose where inference state leaves a server. The affected connector encoded a remote decode address in the request ID; when the HTTP client could supply that string, it steered a prefill worker to an attacker-controlled network peer. primary evidence documents both the outbound connection and cache-transfer…
Inspect the ClaimsCase · DiggingBeagle record
vLLM accepted a client request ID as a trusted KV transfer destination
Under P2pNcclConnector producer configuration, an attacker-controlled X-Request-Id could redirect a cache-transfer connection to an external host.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- patch available
- AI role
- AGAINST AI
Basis and provenance
Detailed project advisory with code-path trace, no independently established widespread exploitation. The impact band remains unknown: available evidence does not establish actual deployed victim outcomes or a comparable measured loss.
Assessed Oct 26, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-CP20-VLLM-KV-REQUEST-ID · CLM-CP20-ENRICH-VLLM-KV-REQUEST-ID · vLLM P2pNcclConnector remote KV cache exfil by request ID
At a glance
Only deployments using the listed P2pNcclConnector and producer role were affected. The advisory does not establish widespread theft of model prompts; an unresponsive receiver can also block a worker.
Limits and uncertaintyFull account
A request identifier should correlate logs, not choose where inference state leaves a server. The affected connector encoded a remote decode address in the request ID; when the HTTP client could supply that string, it steered a prefill worker to an attacker-controlled network peer. primary evidence documents both the outbound connection and cache-transfer path, so this is an execution boundary failure in AI inference infrastructure.
Only deployments using the listed P2pNcclConnector and producer role were affected. The advisory does not establish widespread theft of model prompts; an unresponsive receiver can also block a worker.
Remove the connector or update beyond the vulnerable range; never allow client metadata to select private transfer peers. Network allowlisting alone is weaker than an operator-authenticated peer identity.
The attack chain is not generic HTTP SSRF. vLLM copied the untrusted X-Request-Id into an engine request ID; P2pNcclConnector parsed a decode address from that string and established a ZMQ socket and NCCL communicator to the supplied peer. The advisory traces KV tensor transmission and a blocking-connect denial-of-service condition. The vulnerable range was 0.9.2 through versions below 0.24.0, only when the P2pNcclConnector producer mode was configured; 0.24.0 removed the connector. This does not prove all inference servers leaked raw prompts, nor does a general request ID become dangerous absent that specialized parse path.
Claims & evidence
CLM-CP20-VLLM-KV-REQUEST-IDThe vLLM advisory describes X-Request-Id parsing of a decode address into a ZMQ/NCCL destination, enabling leakage of KV tensors when the affected P2pNcclConnector is active.supported
Basis: reported finding
- supportsvLLM P2pNcclConnector remote KV cache exfil by request IDrole not specified
PoC execution path; affected connector; impact; version 0.24.0
CLM-CP20-ENRICH-VLLM-KV-REQUEST-IDThe vLLM GHSA traces a user-controlled X-Request-Id to the ZMQ/NCCL transfer peer in configured P2pNcclConnector producers; affected versions are 0.9.2 to below 0.24.0 and release 0.24.0 removes the connector.supported
Basis: reported finding
- supportsvLLM P2pNcclConnector remote KV cache exfil by request IDrole not specified
GHSA-vfp2-c8pq-v6h6; request-ID parser, ZMQ/NCCL send path and affected configuration
Unknowns and contradictions
- Only deployments using the listed P2pNcclConnector and producer role were affected. The advisory does not establish widespread theft of model prompts; an unresponsive receiver can also block a worker.
Sources and citation
Material revision history
- Oct 26, 2026 · Canonical change recorded · new in release · revision 193