CVE-2025-25183 json
vLLM using built-in hash() from Python 3.12 leads to predictable hash collisions in vLLM prefix cache
published 2025-02-06 21 mo ago modified 2026-08-07 3 mo ago also EUVD-2025-4074 , GHSA-rm76-4mrf-v9r8 , PYSEC-2025-62
- cvss
- 2.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 8%
- public exploits
- 0
- none known
Summary
vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Maliciously constructed statements can lead to hash collisions, resulting in cache reuse, which can interfere with subsequent responses and cause unintended behavior. Prefix caching makes use of Python's built-in hash() function. As of Python 3.12, the behavior of hash(None) has changed to be a predictable constant value. This makes it more feasible that someone could try exploit hash collisions. The impact of a collision would be using cache that was generated using different content. Given knowledge of prompts in use and predictable hashing behavior, someone could intentionally populate the cache using a prompt known to collide with another prompt in use. This issue has been addressed in version 0.7.2 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Patch / fix
- pypi vllm 0.7.2
- vllm-project vllm 0.7.2
- vllm vllm 0.7.2
- github.com/python/cpython@432117c commit
- github.com/vllm-project/vllm@73b35cc commit
- github.com/vllm-project/vllm#12621 pull request
- github.com/python/cpython#99541 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-25183 updated cvss 2.6
vllm: vLLM uses Python 3.12 built-in hash() which leads to predictable hash collisions in prefix cache
-
Red Hat Enterprise Linux AI (RHEL AI) bootc-intel-rhel9, bootc-nvidia-rhel9, bootc-azure-amd-rhel9, instructlab-amd-rhel9, bootc-aws-nvidia-rhel9, bootc-gcp-nvidia-rhel9, +4 moreaffected: workaround, no fix available “Using a hashing algorithm that is less prone to collision, such as sha256, for example, would be the best way to avoid the possibility of a collision.”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 21 mo ago
Exploit prediction
0.19% chance of exploitation in the next 30 days, higher than 8% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 2.6 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N |
| GitHub | 3.1 | 2.6 | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | vllm | <0.7.2 |
0.7.2 |
Affected products
- vllm-project vllm
Classification
- Weakness
-
- CWE-354 Improper Validation of Integrity Check Value
References
-
github.com
/vllm-project/vllm/pull/12621
web, issue-tracking, report
-
github.com
/python/cpython/commit/432117cd1f59c76d97da2eaff55a7d758301dbc7
web, not-applicable, patch
-
github.com
/python/cpython/pull/99541
web
-
github.com
/vllm-project/vllm/commit/73b35cca7f3745d07d439c197768b25d88b6ab7f
web
-
github.com
/vllm-project/vllm/security/advisories/GHSA-rm76-4mrf-v9r8
web, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2025-25183
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/vllm/PYSEC-2025-62.yaml
web
-
github.com
/vllm-project/vllm
package
Sources
- CVE List CVE-2025-25183
- GitHub Advisory GHSA-rm76-4mrf-v9r8
- NVD CVE-2025-25183
- OSV PYSEC-2025-62
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.