CVE-2026-115917
Mở trang đầy đủCVSS 4.7 MEDIUM
vLLM: Permissive default CORS origins allow cross-origin requests to the vLLM HTTP server
Mô tả
Summary
The OpenAI-compatible server registers Starlette CORSMiddleware with
allowed_origins defaulting to ["*"], and performs no authentication unless
--api-key (or VLLM_API_KEY) is configured. A web page on any origin can send
requests to a vLLM server that the victim's browser can reach (for example
localhost or an internal/VPN address) and read the responses. The default
allow_credentials=False blocks cookie-bearing cross-origin requests; because
vLLM authenticates with a bearer header rather than cookies, the wildcard still
permits untokenized access to an unauthenticated server and read access when the
caller already holds a token.
Details
Affected components
vllm/entrypoints/launchers/cli_args.py-allowed_originsdefault value.vllm/entrypoints/serve/middleware/register.py-CORSMiddleware
registration.vllm/entrypoints/serve/middleware/authenticate.py- auth middleware and its
guarded path prefixes.
Root cause
vllm/entrypoints/launchers/cli_args.py:
allow_credentials: bool = False
"""Allow credentials."""
allowed_origins: list[str] = field(default_factory=lambda: ["*"])
"""Allowed origins."""
vllm/entrypoints/serve/middleware/register.py:
app.add_middleware(
CORSMiddleware,
allow_origins=args.allowed_origins,
allow_credentials=args.allow_credentials,
allow_methods=args.allowed_methods,
allow_headers=args.allowed_headers,
)
The auth middleware is added only when a token is configured and guards only the
/v1, /v2, /inference, and /cohere prefixes. /v1/load_lora_adapter and
/v1/unload_lora_adapter are inside /v1 and therefore do require a key when
one is set; they are open only when no key is configured and dynamic LoRA
updating is enabled.
Impact
- A malicious page can enumerate models (
GET /v1/models), issue
POST /v1/chat/completions, consume GPU time, and read model output through
the victim's browser. - When the server is reachable only from the victim's network, the browser acts
as a proxy a remote website could not otherwise use. - With
allow_credentials=False, cookie-based CSRF does not apply; the exposure
is cross-origin request execution and response disclosure.
This advisory was fixed in MR61009.
Điểm và phân loại
- CVSS
- 4.7 MEDIUM v3.1
- Nguồn điểm
- NVD
- Mức độ (theo nguồn)
- MEDIUM
- EPSS
- 0.24%
- CWE
- CWE-942
Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N
Ảnh hưởng
| Package | Bản bị ảnh hưởng | Bản đã sửa |
|---|---|---|
pip vllm |
< 0.32.0 |
0.32.0
|
Sản phẩm
- vllm-project vllm
- vllm vllm
Vì sao bị lọc
- CVSS 4.7 < 8.0 và không thuộc CISA KEV
Loại tác động
Không nhận ra loại tác động nào từ CWE, vector hay mô tả.
Dữ liệu riêng của nguồn
- CVE.org · Đơn vị cấp mã
- GitHub_M
- CVE.org · SSVC
- Tự động hoá được: no · Khai thác: none · Tác động kỹ thuật: partial
- OSV.dev · ID
- GHSA-vvpg-rrww-wpmh, PYSEC-2026-4348
Tham khảo
- https://github.com/advisories/GHSA-vvpg-rrww-wpmh
- https://github.com/vllm-project/vllm/security/advisories/GHSA-vvpg-rrww-wpmh
- https://nvd.nist.gov/vuln/detail/CVE-2026-115917
- https://github.com/vllm-project/vllm/pull/61009
- https://github.com/vllm-project/vllm/commit/fcae5c98870ff2c20659731dce7ba3a3ff0d48aa
- https://github.com/vllm-project/vllm/releases/tag/v0.32.0
- https://osv.dev/vulnerability/GHSA-vvpg-rrww-wpmh
- https://github.com/vllm-project/vllm
- https://osv.dev/vulnerability/PYSEC-2026-4348