vLLM's OpenAI-compatible server ships with a wildcard CORS policy before 0.32.0, so a malicious web page can use a victim's browser as a bridge to an unauthenticated vLLM instance on localhost, an internal network, or a VPN. The attacker can call /v1/models and /v1/chat/completions, burn GPU cycles and read the responses. Severity is low (CVSS 3.4) because it needs user interaction, high attack complexity, and the target must have no authentication. There is no known public exploit, no Nuclei template, no KEV listing and no EPSS data, although vLLM has 94 downstream dependents and a package risk score of 61/100. Upgrade to vLLM 0.32.0 or later, and in the meantime restrict allowed origins, enable API key authentication and keep inference endpoints off flat internal networks.
What is the risk?
Low overall risk (CVSS 3.4, AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N). Exploitation requires a victim with network reach to an unauthenticated vLLM server to visit an attacker-controlled page, and the attacker must know or guess the internal address. Credentialed CSRF does not apply and servers requiring bearer tokens are exposed only if the caller already holds a valid token. No public exploit, no Nuclei template, no KEV listing and no EPSS data are available. Exposure is highest for developer workstations running local vLLM and for internal clusters with no authentication.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| vLLM | pip | < 0.32.0 | 0.32.0 |
Do you use vLLM? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade vLLM to 0.32.0 or later (fix in PR 61009, commit fcae5c9). 2) Until patched, set the server's allowed-origins option to explicit trusted origins instead of the wildcard. 3) Enable API key or bearer authentication on all vLLM servers, including internal ones. 4) Place inference endpoints behind an authenticated reverse proxy and segment them from user workstation networks. 5) Detect abuse by reviewing access logs for requests carrying unexpected Origin headers and for unusual spikes in chat completion calls or GPU utilization. 6) Inventory pip installations of vllm to identify versions below 0.32.0.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-115917?
vLLM's OpenAI-compatible server ships with a wildcard CORS policy before 0.32.0, so a malicious web page can use a victim's browser as a bridge to an unauthenticated vLLM instance on localhost, an internal network, or a VPN. The attacker can call /v1/models and /v1/chat/completions, burn GPU cycles and read the responses. Severity is low (CVSS 3.4) because it needs user interaction, high attack complexity, and the target must have no authentication. There is no known public exploit, no Nuclei template, no KEV listing and no EPSS data, although vLLM has 94 downstream dependents and a package risk score of 61/100. Upgrade to vLLM 0.32.0 or later, and in the meantime restrict allowed origins, enable API key authentication and keep inference endpoints off flat internal networks.
Is CVE-2026-115917 actively exploited?
No confirmed active exploitation of CVE-2026-115917 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-115917?
1) Upgrade vLLM to 0.32.0 or later (fix in PR 61009, commit fcae5c9). 2) Until patched, set the server's allowed-origins option to explicit trusted origins instead of the wildcard. 3) Enable API key or bearer authentication on all vLLM servers, including internal ones. 4) Place inference endpoints behind an authenticated reverse proxy and segment them from user workstation networks. 5) Detect abuse by reviewing access logs for requests carrying unexpected Origin headers and for unusual spikes in chat completion calls or GPU utilization. 6) Inventory pip installations of vllm to identify versions below 0.32.0.
What systems are affected by CVE-2026-115917?
This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference endpoints, internal AI platforms, developer workstations running local inference.
What is the CVSS score for CVE-2026-115917?
CVE-2026-115917 has a CVSS v3.1 base score of 3.4 (LOW). The EPSS exploitation probability is 0.24%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0006Active ScanningAML.T0034Cost HarvestingAML.T0040AI Model Inference API AccessAML.T0078Drive-by CompromiseCompliance Controls Affected
What are the technical details?
Original Advisory
vLLM is an inference and serving engine for large language models. Prior to 0.32.0, the OpenAI-compatible server configures Starlette CORSMiddleware with allowed_origins set to a wildcard by default. A malicious web page can use a victim's browser to reach an unauthenticated vLLM server on localhost, an internal network, or a VPN, call endpoints including GET /v1/models and POST /v1/chat/completions, consume GPU resources, and read responses. Cookie-based cross-site request forgery does not apply because credentials are disabled by default, and deployments requiring bearer authentication are exposed only when the caller already has a usable token. This issue is fixed in version 0.32.0.
Exploitation Scenario
An attacker hosts a web page or buys an ad slot containing JavaScript. An engineer on the corporate VPN, with an unauthenticated vLLM server reachable on an internal address, visits the page. The script probes common internal addresses and ports, finds the server, calls GET /v1/models to fingerprint it, then sends POST /v1/chat/completions requests with attacker-chosen prompts. Because CORS allows any origin, the script reads the responses and sends them to the attacker, while the requests consume GPU capacity.
Weaknesses (CWE)
CWE-942Permissive Cross-domain Security Policy with Untrusted DomainsPrimaryCWE-942Permissive Cross-domain Security Policy with Untrusted DomainsPrimaryCWE-942Permissive Cross-domain Security Policy with Untrusted DomainsCWE-942 — Permissive Cross-domain Security Policy with Untrusted Domains: The product uses a web-client protection mechanism such as a Content Security Policy (CSP) or cross-domain policy file, but the policy includes untrusted domains with which the web client is allowed to communicate.
- [Architecture and Design, Operation] Define a restrictive Content Security Policy [REF-1486] or cross-domain policy file.
- [Architecture and Design, Operation] Avoid using wildcards in the CSP / cross-domain policy file. Any domain matching the wildcard expression will be implicitly trusted, and can perform two-way interaction with the target server.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:NReferences
- github.com/vllm-project/vllm/commit/fcae5c98870ff2c20659731dce7ba3a3ff0d48aax_refsource_MISC
- github.com/vllm-project/vllm/pull/61009x_refsource_MISC
- github.com/vllm-project/vllm/releases/tag/v0.32.0x_refsource_MISC
- github.com/vllm-project/vllm/security/advisories/GHSA-vvpg-rrww-wpmhx_refsource_CONFIRM
- github.com/advisories/GHSA-vvpg-rrww-wpmh
- nvd.nist.gov/vuln/detail/CVE-2026-115917
Timeline
Related Vulnerabilities
CVE-2026-6173210.0Decepticon: ChatML token injection yields sandbox RCE
Same package: vllmCVE-2026-259609.8vllm: SSRF allows internal network access
Same package: vllmCVE-2025-472779.8vLLM: RCE via exposed TCPStore in distributed inference
Same package: vllmCVE-2024-110419.8vllm: RCE via unsafe pickle deserialization in MessageQueue
Same package: vllmCVE-2024-90539.8vllm: RCE via unsafe pickle deserialization in RPC server
Same package: vllm