CVE-2026-37237: vLLM: unbounded media URLs cause memory-exhaustion DoS

HIGH
Published August 28, 2026
CISO Take

vLLM's multimodal media fetcher (AsyncMediaIO.fetch_audio/fetch_image) downloads user-supplied image or audio URLs into memory without enforcing any maximum response size, so a single request pointing to an arbitrarily large or endlessly-streaming file can exhaust host memory and crash the inference process. This is a network-exploitable, unauthenticated, zero-complexity bug (CVSS 7.5, AV:N/AC:L/PR:N/UI:N) affecting availability only — no data confidentiality or integrity impact — but any vLLM deployment exposing vision or audio inputs (e.g. OpenAI-compatible chat completions with image_url/audio parameters) is exposed to trivial denial of service. There is no EPSS score, CISA KEV listing, public exploit, or Nuclei template yet, so opportunistic mass exploitation hasn't been observed, but the attack requires no AI/ML expertise and can be reproduced with a single crafted URL, so treat proof-of-concept availability as a matter of time rather than a mitigating factor. Track the upstream fix in vllm-project/vllm PR #36506 and upgrade past 0.17.0 once a patched release ships; in the interim, restrict or proxy outbound media fetches with a hard size cap and monitor inference-host memory for OOM kills on multimodal endpoints.

Sources:NVDATLASgithub.com

What is the risk?

High severity by CVSS (7.5) but availability-only impact — confidentiality and integrity are unaffected. Attack complexity is low and requires no privileges or user interaction, making this trivial to exploit for anyone who can reach a vLLM multimodal endpoint (public-facing or internal-but-untrusted). No EPSS percentile, CISA KEV entry, public PoC, or Nuclei template currently exists, so there's no evidence of active or automated exploitation today — but the simplicity of the attack (one malicious URL, no auth bypass or code execution needed) means the barrier to a working exploit is minimal. Risk is elevated for multi-tenant or shared inference deployments, where one attacker's request can deny service to all other users of the same vLLM instance.

How does the attack unfold?

Entry point
Attacker submits an inference request to a public-facing vLLM multimodal endpoint containing a malicious image or audio URL.
AML.T0049
Resource exhaustion
AsyncMediaIO.fetch_image/fetch_audio fetches the URL via aiohttp and buffers the entire response with r.read() without any size limit, consuming server memory proportional to the attacker-controlled file size.
AML.T0034.001
Impact
Server memory is exhausted, the vLLM process is OOM-killed or the host becomes unresponsive, denying inference service to all users of the deployment.
AML.T0029

What systems are affected?

PackageEcosystemVulnerable RangePatched
vLLMpip—No patch
96.0K94 dependentsPushed yesterday27% patched~37d to patchFull package profile →

Do you use vLLM? You're affected.

How severe is it?

CVSS 3.1
7.5 / 10
EPSS
0.7%
chance of exploitation in 30 days
Higher than 54% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Trivial

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRNone
UINone
SUnchanged
CNone
INone
AHigh

What should I do?

1 step
  1. Upgrade vLLM past 0.17.0 once a release incorporating the fix in PR #36506 is published; track vllm-project/vllm release notes. As an interim workaround, disable URL-based multimodal inputs and require pre-uploaded/base64-encoded media instead, or front the service with a reverse proxy (nginx/Envoy) that enforces a strict maximum response size and timeout on any outbound media fetch. If URL fetching must remain enabled, restrict it to an allowlist of trusted media domains and add custom middleware that streams the response and aborts once a size threshold is exceeded, rather than buffering with r.read(). For detection, monitor vLLM process/container memory and OOM-kill events on multimodal endpoints, log inbound media URLs and response sizes, and rate-limit multimodal requests per API key/IP to cap the blast radius of repeated attempts.

What does CISA's SSVC say?

DecisionTrack
Exploitationnone
AutomatableYes
Technical Impactpartial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

NIST AI RMF
MEASURE 2.7-AI system security and resilience is evaluated and documented
OWASP LLM Top 10
LLM10:2025-Unbounded Consumption

Frequently Asked Questions

What is CVE-2026-37237?

vLLM's multimodal media fetcher (AsyncMediaIO.fetch_audio/fetch_image) downloads user-supplied image or audio URLs into memory without enforcing any maximum response size, so a single request pointing to an arbitrarily large or endlessly-streaming file can exhaust host memory and crash the inference process. This is a network-exploitable, unauthenticated, zero-complexity bug (CVSS 7.5, AV:N/AC:L/PR:N/UI:N) affecting availability only — no data confidentiality or integrity impact — but any vLLM deployment exposing vision or audio inputs (e.g. OpenAI-compatible chat completions with image_url/audio parameters) is exposed to trivial denial of service. There is no EPSS score, CISA KEV listing, public exploit, or Nuclei template yet, so opportunistic mass exploitation hasn't been observed, but the attack requires no AI/ML expertise and can be reproduced with a single crafted URL, so treat proof-of-concept availability as a matter of time rather than a mitigating factor. Track the upstream fix in vllm-project/vllm PR #36506 and upgrade past 0.17.0 once a patched release ships; in the interim, restrict or proxy outbound media fetches with a hard size cap and monitor inference-host memory for OOM kills on multimodal endpoints.

Is CVE-2026-37237 actively exploited?

No confirmed active exploitation of CVE-2026-37237 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-37237?

Upgrade vLLM past 0.17.0 once a release incorporating the fix in PR #36506 is published; track vllm-project/vllm release notes. As an interim workaround, disable URL-based multimodal inputs and require pre-uploaded/base64-encoded media instead, or front the service with a reverse proxy (nginx/Envoy) that enforces a strict maximum response size and timeout on any outbound media fetch. If URL fetching must remain enabled, restrict it to an allowlist of trusted media domains and add custom middleware that streams the response and aborts once a size threshold is exceeded, rather than buffering with `r.read()`. For detection, monitor vLLM process/container memory and OOM-kill events on multimodal endpoints, log inbound media URLs and response sizes, and rate-limit multimodal requests per API key/IP to cap the blast radius of repeated attempts.

What systems are affected by CVE-2026-37237?

This vulnerability affects the following AI/ML architecture patterns: model serving, agent frameworks.

What is the CVSS score for CVE-2026-37237?

CVE-2026-37237 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.73%.

What is the AI security impact?

Affected AI Architectures

model servingagent frameworks

MITRE ATLAS Techniques

AML.T0029Denial of AI Service
AML.T0034.001Resource-Intensive Queries
AML.T0049Exploit Public-Facing Application

Compliance Controls Affected

NIST AI RMF: MEASURE 2.7
OWASP LLM Top 10: LLM10:2025

What are the technical details?

Original Advisory

vLLM up to and including 0.17.0 allows remote attackers to cause a Denial of Service via memory exhaustion. The AsyncMediaIO.fetch_audio and AsyncMediaIO.fetch_image functions in multimodal/inputs.py fetch user-supplied media URLs using aiohttp and call r.read() without enforcing a maximum response size, allowing an attacker to exhaust server memory by providing a URL to an arbitrarily large file.

Exploitation Scenario

An attacker with access to a vLLM-served vision or audio model sends a single chat-completion request embedding an `image_url` (or audio URL) that points to an attacker-controlled server returning either a multi-gigabyte file or an endless/never-terminating stream with no Content-Length. AsyncMediaIO.fetch_image/fetch_audio calls aiohttp's `r.read()` without any size cap, buffering the entire response into process memory. A handful of such requests — or even one sufficiently large payload — exhausts available memory, causing the vLLM process to be OOM-killed and denying inference service to every other user sharing that deployment, with no authentication or prior access required.

Weaknesses (CWE)

CWE-400 — Uncontrolled Resource Consumption: The product does not properly control the allocation and maintenance of a limited resource.

  • [Architecture and Design] Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold.
  • [Architecture and Design] Mitigation of resource exhaustion attacks requires that the target system either: The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question. The second solution is simply difficult to effectively institute -- and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker. recognizes the attack and denies that user further access for a given amount of time, or uniformly throttles all requests in order to make it more difficult to consume resources more quickly than they can again be freed.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
August 28, 2026
Last Modified
September 9, 2026
First Seen
August 28, 2026

Related Vulnerabilities