Skip to main content

vLLM CVE-2026-105756

MEDIUM
Improper Input Validation (CWE-20)
2026-10-05 GitHub_M GHSA-2823-qmq8-rwvj
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain low-privilege API access to vLLM endpoint
  2. Exploit
    Send request with malformed cache_salt (forbidden char or >128 chars)
  3. Execution
    Trigger uncaught ValueError in scheduler cache lookup
  4. Impact
    Crash EngineCore and deny service to all users

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires the deployment to be configured with the LMCache-MP connector (which uses the IPCCacheServerKey consumer) - default vLLM deployments without this connector are not vulnerable. The attacker must be able to submit an OpenAI-compatible request (CompletionRequest, ChatCompletionRequest, ResponsesRequest, or GenerateRequest) carrying a non-empty cache_salt, and the vector's PR:L indicates at least low-privilege API access is needed. The trigger is specific: a cache_salt containing a forbidden character ('@', '/', '\', or NUL) or exceeding 128 characters. Limiting factors: non-default connector configuration, required API-level privilege, and affected versions prior to 0.30.0.

Impact

This is a genuine but moderate-priority availability issue, not a high-severity emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) correctly captures a network-reachable, low-complexity denial of service with no confidentiality or integrity impact, scoring 6.5 (Medium). The key dampening factor is scope of exploitability: the description states the crash only occurs 'on deployments using the LMCache-MP connector,' so the vast majority of default vLLM deployments are NOT affected, materially lowering real-world risk below what the network attack vector alone would suggest. PR:L indicates the attacker needs at least low-privilege API access, meaning it is not a fully unauthenticated flaw per the provided vector. No EPSS score was supplied, so quantitative exploitation probability cannot be stated. This is NOT in CISA KEV and no public exploit code was provided - the GitHub source evidence is the vendor fix (PR #51444), not weaponized exploit tooling. CONFLICT TO NOTE: the input Tags label this 'Information Disclosure,' which directly contradicts the CVSS vector (C:N/I:N/A:H) and the description - this is purely a denial-of-service / crash bug with zero disclosure impact; the tag appears mislabeled.

Exploit ScenarioDerived

On a vLLM instance configured with the LMCache-MP connector, an attacker with API access submits an OpenAI-compatible completion/chat/responses request containing a cache_salt value with a forbidden character (e.g. '/') or longer than 128 characters. Because the request model accepts the value without enforcing the IPCCacheServerKey restrictions, an uncaught ValueError is raised during scheduler cache lookup, crashing the EngineCore process and taking the service offline for all concurrent users. No public exploit code was identified in the provided data, but the condition is trivial to trigger once the vulnerable connector is in use.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

Malformed cache_salt values submitted to vLLM's OpenAI-compatible inference endpoints can crash the EngineCore process and deny service to every concurrent user on deployments configured with the LMCache-MP connector. Only vLLM releases prior to 0.30.0 are affected, and exploitation requires low-privilege API access (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base score 6.5) plus the non-default LMCache-MP connector; a cache_salt containing '@', '/', '\\', or NUL, or longer than 128 characters, raises an uncaught ValueError during scheduler cache lookup. The flaw is fixed in version 0.30.0, and no public exploit code or confirmed active exploitation was identified at time of analysis, making this a genuine but moderate-priority availability issue rather than a high-severity emergency.

RemediationAI

Upgrade to vLLM 0.30.0 or later, which is the vendor-released patch and the version in which validate_cache_salt() is enforced across all OpenAI-compatible and scale-out request models; the release is available at github.com/vllm-project/vllm/releases/tag/v0.30.0 and the change is described in advisory GHSA-2823-qmq8-rwvj, with the underlying fix in PR 51444 / commit e962733e08d10f7ca65dac4df99e116460b8b174. If an immediate upgrade is not possible, the most effective compensating control is to disable or remove the LMCache-MP connector from the deployment configuration - the vulnerability is entirely unreachable without it, but the trade-off is loss of the multi-process prefix/KV caching that connector provides, which will reduce cache hit rates and increase latency and GPU memory pressure under high concurrency. As a secondary control, terminate cache_salt at an API gateway or reverse proxy that rejects any value longer than 128 characters or containing '@', '/', backslash, or NUL, or that strips the field outright; blocking the entire parameter prevents downstream cache-salting entirely, which can weaken cache-key isolation if multiple tenants share a cache, whereas length-and-character filtering preserves legitimate salts but requires the proxy to parse JSON bodies reliably. Because exploitation requires authenticated API access (PR:L), reducing the set of principals permitted to submit inference requests, or fronting the endpoint with authentication and per-user rate limits, raises the cost of the attack but does not remove the bug. Note that Environment: no public exploit code was identified at time of analysis, so urgency is driven by internal exposure of the LMCache-MP connector rather than by observed attack activity.

Affected Packages

pypi vllm fix: 0.30.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-20 improper input validation in vLLM's request-handling layer. vLLM exposes OpenAI-compatible request models - CompletionRequest, ChatCompletionRequest, ResponsesRequest, and the scale-out GenerateRequest - that accept an optional user-supplied cache_salt used as a per-request salt for KV-cache reuse. Prior to the fix, these Pydantic models accepted any non-empty string for cache_salt without checking it against the character and length constraints enforced downstream by the IPCCacheServerKey consumer in LMCache-MP, the multi-process LMCache connector. When a salt contains a forbidden character ('@', '/', backslash, or NUL) or exceeds the 128-character limit, the downstream consumer raises a ValueError that is not caught during scheduler cache lookup, propagating out of EngineCore and terminating the engine process - an unhandled exception in the core event loop rather than a graceful per-request error. The upstream fix adds a validate_cache_salt() helper in vllm/entrypoints/generate/base/protocol.py, defining _CACHE_SALT_FORBIDDEN_CHARS = frozenset('@/\\\x00') and _MAX_CACHE_SALT_LENGTH = 128, and wires it into each request model via a Pydantic @model_validator(mode='before') hook so invalid salts are rejected with a VLLMValidationError before they ever reach the cache backend; the same validation is applied to the pooling base protocol. The accompanying tests parametrize all four request models to confirm that '/' and 129-character salts are rejected and that a safe salt such as 'safe-cache_salt-123' is accepted. Two important scoping facts follow from this design: the vulnerable code path only exists when the LMCache-MP connector is in use, since default vLLM deployments never route cache_salt to IPCCacheServerKey, and the attacker needs the ability to submit an authenticated API request (PR:L) rather than merely reach the port.

Know when Vllm gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 6.5 MEDIUM

Network-reachable API request (AV:N) needing low-privilege access (PR:L) crashes the shared EngineCore for all users with no data impact, so A:H only; AC:L since the malformed salt is trivial to craft.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

vLLM is an inference and serving engine for large language models. Prior to 0.30.0, OpenAI-compatible request models accept a non-empty cache_salt value without enforcing the character and length restrictions required by the IPCCacheServerKey consumer in LMCache-MP. On deployments using the LMCache-MP connector, a salt that contains a forbidden character or exceeds the permitted length can raise an uncaught ValueError during scheduler cache lookup, causing EngineCore to terminate and denying service to all concurrent users. This issue is fixed in version 0.30.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 pypi packages depend on vllm (4 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.30.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
High
vLLM is a widely adopted open-source LLM inference/serving engine
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Affected Products (CPE)CVE.org

cpe:2.3:a:vllm-project:vllm:*:*:*:*:*:*:*:*

More in Vllm

View all
CVE-2025-32444 CRITICAL POC
10.0 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated critical severity (CVSS 10.0

CVE-2024-11041 CRITICAL POC
9.8 Mar 20

vllm-project vllm version v0.6.2 contains a vulnerability in the MessageQueue.dequeue() API function. Rated critical sev

CVE-2026-22778 CRITICAL POC
9.8 Feb 02

Information exposure in vLLM inference engine versions 0.8.3 to before 0.14.1. Invalid image requests to the multimodal

CVE-2025-59425 HIGH POC
7.5 Oct 07

Timing-based API key recovery in vLLM before 0.11.0rc2 can let remote attackers bypass bearer-token authentication on de

CVE-2025-30202 HIGH POC
7.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated high severity (CVSS 7.5), th

CVE-2026-54234 HIGH POC
7.5 Jul 06

Denial of service in the vLLM LLM inference server (all versions prior to 0.24.0) allows a remote client to crash the sh

CVE-2026-24779 HIGH POC
7.1 Jan 27

vLLM before version 0.14.1 contains a server-side request forgery vulnerability in the MediaConnector class where incons

CVE-2026-57173 MEDIUM POC
6.5 Sep 16

Out-of-memory worker crashes in vLLM can be induced by a single small compressed audio payload submitted to the /v1/chat

CVE-2025-46560 MEDIUM POC
6.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated medium severity (CVSS 6.5),

CVE-2026-69147 MEDIUM POC
6.5 Sep 16

GPU memory exhaustion in vLLM versions prior to 0.28.0 lets an attacker with low-privileged API access (PR:L in the CVSS

CVE-2026-105753 MEDIUM POC
6.5 Oct 05

Multimodal inference requests to vLLM deployments running versions prior to 0.28.0 can trigger a process-level assertion

CVE-2026-73559 MEDIUM POC
6.5 Aug 13

Uncontrolled resource consumption in vLLM's OpenAI-compatible completions endpoint allows any authenticated API client t

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy