CVE-2026-115917: vLLM: wildcard CORS lets web pages reach local servers

GHSA-vvpg-rrww-wpmhLOW
Published October 26, 2026
CISO Take

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.

Sources:NVDGitHub AdvisoryATLAS

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?

Initial Access
The victim visits an attacker-controlled web page while on a network that can reach an unauthenticated vLLM server.
AML.T0078
Discovery
Page JavaScript probes internal addresses and calls GET /v1/models to find and fingerprint the vLLM server.
AML.T0006
Exploitation
The script sends cross-origin POST /v1/chat/completions requests, which the wildcard CORS policy permits, and reads the responses.
AML.T0040
Impact
The attacker collects model output and consumes GPU resources on the victim's server.
AML.T0034

What systems are affected?

PackageEcosystemVulnerable RangePatched
vLLMpip< 0.32.00.32.0
95.4K94 dependentsPushed 6d ago27% patched~37d to patchFull package profile →

Do you use vLLM? You're affected.

How severe is it?

CVSS 3.1
3.4 / 10
EPSS
0.2%
chance of exploitation in 30 days
Higher than 15% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Moderate

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACHigh
PRNone
UIRequired
SChanged
CLow
INone
ANone

What should I do?

1 step
  1. 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.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Article 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Mechanisms to respond to and recover from AI system risks
OWASP LLM Top 10
LLM10-Unbounded Consumption

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

model servingLLM inference endpointsinternal AI platformsdeveloper workstations running local inference

MITRE ATLAS Techniques

AML.T0006Active Scanning
AML.T0034Cost Harvesting
AML.T0040AI Model Inference API Access
AML.T0078Drive-by Compromise

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3
OWASP LLM Top 10: LLM10

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-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:N

Timeline

Published
October 26, 2026
Last Modified
October 31, 2026
First Seen
October 26, 2026

Related Vulnerabilities