CVE-2026-93840: vLLM before 0.29.0 Cross-Request Logits Corruption via allowed_token_ids
vLLM before 0.29.0 validates allowedtokenids against tokenizer length instead of model output logits width in SamplingParams.validateallowedtokenids(). Attackers can supply token IDs above the output vocabulary that pass validation, causing LogitBiasState to corrupt GPU logits state and allow concurrent requests to sample tokens outside their allowlists.
Affected Software
Event History
Frequently Asked Questions
Which deployments are exposed in practice?
vLLM versions before 0.29.0 are affected when requests can supply allowed_token_ids. The cross-request impact occurs when concurrent requests are processed.
What does an attacker need to exploit this?
An attacker needs network access and the ability to submit allowed_token_ids containing IDs above the model's output-logits vocabulary width. No privileges or user interaction are required, although the attack complexity is rated high.
What is the security impact of a successful exploit?
The corrupted GPU logits state can cause concurrent requests to sample tokens outside their configured allowlists. The provided vector rates this as a low integrity impact, with no confidentiality or availability impact.
What should teams do to remediate the issue?
Upgrade vLLM to version 0.29.0 or later. This version corrects validation so allowed_token_ids are checked against the model output-logits width rather than tokenizer length.