{"id":"CVE-2026-93840","published":"2026-09-18T20:17:34.200","lastModified":"2026-09-22T20:25:55.870","description":"vLLM before 0.29.0 validates allowed_token_ids against tokenizer length instead of model output logits width in SamplingParams._validate_allowed_token_ids(). 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.","cvssScore":3.7,"cvssSeverity":"LOW","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","cwes":["CWE-129"],"vendors":[],"products":[],"references":[{"url":"https://github.com/vllm-project/vllm","tags":[]},{"url":"https://github.com/vllm-project/vllm/blob/v0.28.0/vllm/sampling_params.py#L881-L903","tags":[]},{"url":"https://github.com/vllm-project/vllm/blob/v0.28.0/vllm/v1/worker/gpu/sample/logit_bias.py#L179-L191","tags":[]},{"url":"https://github.com/vllm-project/vllm/commit/5b0e5b69ac1a3884a6479c9537789c95263cc804","tags":[]},{"url":"https://github.com/vllm-project/vllm/pull/49080","tags":[]},{"url":"https://www.vulncheck.com/advisories/vllm-before-0.29.0-cross-request-logits-corruption-via-allowed-token-ids","tags":[]}],"exploitRefs":[{"url":"https://github.com/vllm-project/vllm","tags":[]},{"url":"https://github.com/vllm-project/vllm/blob/v0.28.0/vllm/sampling_params.py#L881-L903","tags":[]},{"url":"https://github.com/vllm-project/vllm/blob/v0.28.0/vllm/v1/worker/gpu/sample/logit_bias.py#L179-L191","tags":[]},{"url":"https://github.com/vllm-project/vllm/commit/5b0e5b69ac1a3884a6479c9537789c95263cc804","tags":[]},{"url":"https://github.com/vllm-project/vllm/pull/49080","tags":[]}],"hasPoc":true,"ai":null}