Summary
CVE-2026-94622 is a denial-of-service vulnerability affecting vLLM, the widely used open-source LLM inference and serving engine, in versions up to and including 0.29.0. The flaw resides in the NIXL KV-transfer connector used for prefill/decode disaggregated deployments, where malformed client-supplied requests can trigger an uncaught exception that crashes the decode engine. The issue carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 score of 8.7 (High), and is remotely exploitable without authentication or user interaction.
Technical details
- Root cause: The NIXL connector’s metadata handling (
vllm/distributed/kv_transfer/kv_connector/v1/nixl/metadata.py) does not validate that all required fields are present in the client-suppliedkv_transfer_paramsdictionary before indexing into it. - Trigger conditions: An attacker sends a request with an incomplete
kv_transfer_paramspayload (e.g., settingdo_remote_prefill: truewhile omitting required fields such asremote_block_ids,remote_engine_id,remote_request_id,remote_host, orremote_port). - Attack vector: Network-based; exploitable by any client able to reach a vLLM deployment configured for prefill/decode disaggregation using the NIXL KV connector. No authentication or special privileges are required (CWE-248: Uncaught Exception).
- Impact: The missing keys cause an uncaught
KeyErrorduringEngineCorescheduling, which crashes the decode engine process. This halts all in-flight and subsequently routed inference requests until an operator manually restarts the engine — a full availability (denial-of-service) impact with no confidentiality or integrity loss. - Exposure: Organizations running distributed, high-throughput vLLM clusters with NIXL KV transfer enabled for disaggregated prefill/decode serving — including internet-facing inference gateways, multi-tenant LLM platforms, and GPU-as-a-service environments — are most exposed.
Affected software
- vllm-project/vllm — all versions through and including 0.29.0 that use the NIXL KV connector (
v1/nixl) for disaggregated prefill/decode deployments.
Severity
- CVSS v3.1 Base Score: 7.5 (High)
- CVSS v3.1 Vector:
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)
- CWE-248: Uncaught Exception
Mitigation and recommended actions
- Immediate: Upgrade vLLM to a release that incorporates the fix from pull request #54807, which adds validation of
kv_transfer_paramsbefore NIXL receive registration (checking for all required remote fields and range-validatingremote_block_idsprior to use). Deployments should track the vLLM GitHub repository/release notes for the first tagged release after 0.29.0 that includes this patch and update as soon as it is available. - If immediate patching is not possible:
- Restrict network access to disaggregated prefill/decode endpoints (e.g., NIXL connector ports) to trusted internal services only; do not expose them directly to untrusted clients or the public internet.
- Deploy a validating proxy or gateway in front of the vLLM API that rejects requests containing incomplete or malformed
kv_transfer_paramspayloads. - Monitor decode-engine processes for unexpected crashes/restarts and set up automated recovery/alerting to reduce downtime until the patch is applied.

