Summary
CVE-2026-94626 is a memory exhaustion (uncontrolled memory allocation) vulnerability affecting vLLM through version 0.29.0. The flaw arises because vLLM’s OpenAI-compatible completion endpoints fail to validate the tp_size parameter inside kv_transfer_params, allowing a remote, unauthenticated attacker to trigger unbounded memory allocation on decode worker processes in prefill/decode (disaggregated) deployments. The issue is rated HIGH severity and can result in kernel out-of-memory (OOM) kills of inference workers, disrupting service availability.
Technical details
- Root cause: vLLM does not bound-check or sanity-validate the
tp_sizevalue supplied inkv_transfer_paramsbefore using it to construct KV-transfer topology and NIXL metadata structures (e.g., inTransferTopology.handshake_target_ranks). - Trigger conditions: The target deployment must use vLLM’s disaggregated prefill/decode architecture with a KV-transfer connector (e.g., NIXL) that accepts
kv_transfer_paramsfrom client requests via the OpenAI-compatible completions API. - Attack vector: Network-based, unauthenticated — an attacker sends a crafted completion request specifying an arbitrarily large
tp_sizevalue inkv_transfer_params. - Impact: Excessive/unbounded memory allocation on the decode worker leads to kernel OOM-killing of the decode
EngineCoreprocess, taking the inference worker out of service (denial of service / availability impact only — confidentiality and integrity are not affected).
Affected software
- vllm-project/vllm (PyPI package
vllm) — versions 0 through 0.29.0 (inclusive), specifically deployments running the disaggregated prefill/decode architecture with KV-transfer connectors (e.g., NIXL) exposed via OpenAI-compatible completion endpoints.
Severity
- CVSS v3.1 Base Score: 7.5 (HIGH) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS v4.0 Score: 8.7 (HIGH) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CWE-789: Memory Allocation with Excessive Size Value
Mitigation and recommended actions
- Immediate: Track the upstream fix in vLLM pull request #51137, which introduces defense-in-depth validation of
tp_size(and relatedpp_size/remote_portvalues) at the API boundary (Pydantic validators onCompletionRequest,ChatCompletionRequest, andResponsesRequest), inside the KV connector topology logic, and in the request-rejection cleanup path. Upgrade to a vLLM release that incorporates this fix as soon as it is published by the vLLM project. - If no patch is yet available:
- Restrict network access to vLLM OpenAI-compatible completion endpoints to trusted clients only (e.g., via network segmentation, VPN, or API gateway authentication) — do not expose disaggregated prefill/decode endpoints directly to untrusted networks.
- Where possible, disable or tightly control client-supplied
kv_transfer_params(particularlytp_size) on public-facing endpoints. - Monitor decode worker memory usage and set resource limits/cgroup constraints on worker processes to reduce the blast radius of an OOM condition.
- Watch the official vLLM GitHub Security Advisories page for the finalized advisory and patched release version.

