{"id":"CVE-2026-54235","aliases":["GHSA-7h4p-rffg-7823","PYSEC-2026-3405"],"title":"vLLM: temperature=NaN and temperature=Infinity bypass validation and propagate to GPU kernels","summary":"vLLM: temperature=NaN and temperature=Infinity bypass validation and propagate to GPU kernels","severity":"medium","cvss":6.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L","vendor":"vllm","product":"vllm","ecosystem":"pip","affected":["vllm >= 0.8.5, < 0.24.0"],"patched":["vllm 0.24.0"],"published":"2026-06-17","updated":"2026-09-10","sourceUpdated":"2026-09-10T03:50:48.693939195Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-7h4p-rffg-7823","references":[{"url":"https://github.com/vllm-project/vllm/security/advisories/GHSA-7h4p-rffg-7823"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54235"},{"url":"https://github.com/vllm-project/vllm/pull/45116"},{"url":"https://github.com/vllm-project/vllm/commit/d598d239737cfa37bcfcb98886ec3f3557fc7198"},{"url":"https://github.com/advisories/GHSA-7h4p-rffg-7823"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/vllm/PYSEC-2026-3405.yaml"},{"url":"https://github.com/vllm-project/vllm"},{"url":"https://pypi.org/project/vllm"}],"tags":["osv","pip","ghsa"],"epss":0.0045,"epssPercentile":0.38365,"cwe":["CWE-1287"],"ingestedAt":"2026-06-29T14:31:47.441Z","slug":"CVE-2026-54235","body":"## Overview\n\n## Summary\n\nAll 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.\n\n## Root Cause\n\n`sampling_params.py:384`:\n```python\nif 0 < self.temperature < _MAX_TEMP:  # NaN → False; +Inf → False\n```\n\n`sampling_params.py:462`:\n```python\nif self.temperature < 0.0:            # NaN → False; +Inf → False\n    raise VLLMValidationError(...)\n```\n\nNo `math.isnan()` or `math.isinf()` check exists anywhere in `sampling_params.py`.\n\nPython semantics (verified): `float('nan') < 0.0` → `False`, `float('inf') < 0.0` → `False`.\n\n\n## Impact\n\nCrash of inference worker on GPU kernel execution with NaN/Inf softmax input, degrading service for all concurrent users.\n\n## Remediation\n\nAdd `math.isfinite(self.temperature)` check in `_verify_args()`. Reject non-finite float values with a 400 error.\n\n## Fix\n\nA fix for this vulnerability was merged here: https://github.com/vllm-project/vllm/pull/45116\n\n## Affected packages\n\n- `vllm >= 0.8.5, < 0.24.0`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `vllm 0.24.0`","depth":"sunlit","depthScore":36,"depthScoreParts":{"impact":35.8,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[{"seq":201765,"id":"CVE-2026-54235","ts":1789399676076,"field":"cvss","old":null,"new":"6.5"},{"seq":200495,"id":"CVE-2026-54235","ts":1789397341901,"field":"cvss","old":"6.5","new":null},{"seq":198412,"id":"CVE-2026-54235","ts":1789391902615,"field":"cvss","old":null,"new":"6.5"},{"seq":196205,"id":"CVE-2026-54235","ts":1789383548803,"field":"cvss","old":"6.5","new":null},{"seq":195134,"id":"CVE-2026-54235","ts":1789380429737,"field":"cvss","old":null,"new":"6.5"},{"seq":193921,"id":"CVE-2026-54235","ts":1789378452219,"field":"cvss","old":"6.5","new":null},{"seq":192708,"id":"CVE-2026-54235","ts":1789376375808,"field":"cvss","old":null,"new":"6.5"},{"seq":191495,"id":"CVE-2026-54235","ts":1789373355688,"field":"cvss","old":"6.5","new":null},{"seq":190280,"id":"CVE-2026-54235","ts":1789369260619,"field":"cvss","old":null,"new":"6.5"},{"seq":189067,"id":"CVE-2026-54235","ts":1789368227842,"field":"cvss","old":"6.5","new":null},{"seq":187850,"id":"CVE-2026-54235","ts":1789365118303,"field":"cvss","old":null,"new":"6.5"},{"seq":186637,"id":"CVE-2026-54235","ts":1789363221275,"field":"cvss","old":"6.5","new":null},{"seq":185423,"id":"CVE-2026-54235","ts":1789361065503,"field":"cvss","old":null,"new":"6.5"},{"seq":184210,"id":"CVE-2026-54235","ts":1789358099790,"field":"cvss","old":"6.5","new":null},{"seq":182461,"id":"CVE-2026-54235","ts":1789354193320,"field":"cvss","old":null,"new":"6.5"},{"seq":181254,"id":"CVE-2026-54235","ts":1789353082000,"field":"cvss","old":"6.5","new":null},{"seq":180047,"id":"CVE-2026-54235","ts":1789350136947,"field":"cvss","old":null,"new":"6.5"},{"seq":178840,"id":"CVE-2026-54235","ts":1789348046237,"field":"cvss","old":"6.5","new":null},{"seq":177633,"id":"CVE-2026-54235","ts":1789346254264,"field":"cvss","old":null,"new":"6.5"},{"seq":176426,"id":"CVE-2026-54235","ts":1789342969099,"field":"cvss","old":"6.5","new":null},{"seq":174543,"id":"CVE-2026-54235","ts":1789334732272,"field":"cvss","old":null,"new":"6.5"},{"seq":173338,"id":"CVE-2026-54235","ts":1789333463478,"field":"cvss","old":"6.5","new":null},{"seq":172152,"id":"CVE-2026-54235","ts":1789330972383,"field":"cvss","old":null,"new":"6.5"},{"seq":170966,"id":"CVE-2026-54235","ts":1789328564025,"field":"cvss","old":"6.5","new":null},{"seq":169761,"id":"CVE-2026-54235","ts":1789327037022,"field":"cvss","old":null,"new":"6.5"},{"seq":168556,"id":"CVE-2026-54235","ts":1789323618973,"field":"cvss","old":"6.5","new":null},{"seq":167351,"id":"CVE-2026-54235","ts":1789319468915,"field":"cvss","old":null,"new":"6.5"},{"seq":166146,"id":"CVE-2026-54235","ts":1789318504198,"field":"cvss","old":"6.5","new":null},{"seq":164941,"id":"CVE-2026-54235","ts":1789315673839,"field":"cvss","old":null,"new":"6.5"},{"seq":163736,"id":"CVE-2026-54235","ts":1789313424758,"field":"cvss","old":"6.5","new":null},{"seq":162531,"id":"CVE-2026-54235","ts":1789311799726,"field":"cvss","old":null,"new":"6.5"},{"seq":161326,"id":"CVE-2026-54235","ts":1789308482400,"field":"cvss","old":"6.5","new":null},{"seq":160831,"id":"CVE-2026-54235","ts":1789304424482,"field":"cvss","old":null,"new":"6.5"},{"seq":160378,"id":"CVE-2026-54235","ts":1789303949874,"field":"cvss","old":"6.5","new":null},{"seq":159439,"id":"CVE-2026-54235","ts":1789300368988,"field":"cvss","old":null,"new":"6.5"},{"seq":158669,"id":"CVE-2026-54235","ts":1789299442865,"field":"cvss","old":"6.5","new":null},{"seq":157633,"id":"CVE-2026-54235","ts":1789296560658,"field":"cvss","old":null,"new":"6.5"},{"seq":156428,"id":"CVE-2026-54235","ts":1789294542000,"field":"cvss","old":"6.5","new":null},{"seq":155223,"id":"CVE-2026-54235","ts":1789292762880,"field":"cvss","old":null,"new":"6.5"},{"seq":154018,"id":"CVE-2026-54235","ts":1789289543831,"field":"cvss","old":"6.5","new":null},{"seq":152668,"id":"CVE-2026-54235","ts":1789281470519,"field":"cvss","old":null,"new":"6.5"},{"seq":152308,"id":"CVE-2026-54235","ts":1789281061797,"field":"cvss","old":"6.5","new":null},{"seq":151269,"id":"CVE-2026-54235","ts":1789277510130,"field":"cvss","old":null,"new":"6.5"},{"seq":150230,"id":"CVE-2026-54235","ts":1789276045453,"field":"cvss","old":"6.5","new":null},{"seq":149197,"id":"CVE-2026-54235","ts":1789273682028,"field":"cvss","old":null,"new":"6.5"},{"seq":148164,"id":"CVE-2026-54235","ts":1789271068243,"field":"cvss","old":"6.5","new":null},{"seq":146199,"id":"CVE-2026-54235","ts":1789269261742,"field":"cvss","old":null,"new":"6.5"},{"seq":142812,"id":"CVE-2026-54235","ts":1789261324882,"field":"cvss","old":"6.5","new":null},{"seq":141643,"id":"CVE-2026-54235","ts":1789258720397,"field":"cvss","old":null,"new":"6.5"},{"seq":140484,"id":"CVE-2026-54235","ts":1789256557885,"field":"cvss","old":"6.5","new":null}]}