Miggo Logo

CVE-2025-25183:
vLLM uses Python 3.12 built-in hash() which leads to predictable hash collisions in prefix cache

2.6

CVSS Score
3.1

Basic Information

EPSS Score
0.05154%
Published
2/6/2025
Updated
2/10/2025
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
vllmpip< 0.7.20.7.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from using Python's hash(None) which became a fixed value in 3.12. The key functions identified all participate in prefix cache key generation:- 1) content_hash handles block hash calculation chain initialization 2) hash_block_tokens (both versions) directly used None's hash for parent blocks 3) The ComputedBlocksTracker's _update_seq_hashes (implied via prev_block_hash handling). The patches explicitly replaced None with hash('None') in these locations to add randomization, confirming their vulnerability.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Summ*ry M*li*iously *onstru*t** prompts **n l*** to **s* *ollisions, r*sultin* in pr**ix ***** r*us*, w*i** **n int*r**r* wit* su*s*qu*nt r*spons*s *n* **us* unint*n*** ****vior. ### **t*ils vLLM's pr**ix ****in* m*k*s us* o* Pyt*on's *uilt-in

Reasoning

T** vuln*r**ility st*ms *rom usin* Pyt*on's **s*(Non*) w*i** ****m* * *ix** v*lu* in *.**. T** k*y *un*tions i**nti*i** *ll p*rti*ip*t* in pr**ix ***** k*y **n*r*tion:- *) *ont*nt_**s* **n*l*s *lo*k **s* **l*ul*tion ***in initi*liz*tion *) **s*_*lo*k