GitHub Advisoryadvisory · PyPI

GHSA-7h4p-rffg-7823 vLLM: temperature=NaN and temperature=Infinity bypass validation and propagate to GPU kernels

MEDIUM Published 2026-06-17 Modified 2026-07-17 Official page ↗
Aliases
CVE-2026-54235
Ecosystem
PyPI
Packages
vllm
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Weaknesses
CWE-1287
Reviewed
2026-06-17

Affected packages

• PyPI vllm: >= 0.8.5, < 0.24.0 → fixed in 0.24.0

Description

Summary All temperature validation gates use comparison operators (``), which silently evaluate to `False` for `NaN` and for positive `Infinity` in Python's IEEE 754 float semantics. Both values pass every guard and propagate to GPU sampling kernels, where they produce undefined behavior or CUDA errors that can crash the inference worker. Note: `-Infinity` is correctly caught. Root Cause `sampling_params.py:384`: ```python if 0 < self.temperature < _MAX_TEMP: # NaN → False; +Inf → False ``` `sampling_params.py:462`: ```python if self.temperature < 0.0: # NaN → False; +Inf → False raise VLLMValidationError(...) ``` No `math.isnan()` or `math.isinf()` check exists anywhere in `sampling_params.py`. Python semantics (verified): `float('nan') < 0.0` → `False`, `float('inf') < 0.0` → `False`. Impact Crash of inference worker on GPU kernel execution with NaN/Inf softmax input, degrading service for all concurrent users. Remediation Add `math.isfinite(self.temperature)` check in `_verify_args()`. Reject non-finite float values with a 400 error. Fix A fix for this vulnerability was merged here: https://github.com/vllm-project/vllm/pull/45116

Related

Alias · CVE (1)

  • CVE-2026-54235 vLLM is an inference and serving engine for large language models (LLMs). vulnerability

Weakness · CWE (1)

  • CWE-1287 Improper Validation of Specified Type of Input weakness

References