CVE-2026-90554: vLLM: audio decode DoS via NanoNemotronVL video input

MEDIUM
Published September 12, 2026
CISO Take

This vulnerability lets an attacker crash a vLLM inference server by uploading a tiny, highly compressed video to a NanoNemotronVL deployment running with use_audio_in_video enabled — the audio-extraction code path skips the size and duration guards (VLLM_MAX_AUDIO_DECODE_DURATION_S, VLLM_MAX_AUDIO_DECODE_BYTES) that already protect the direct-audio-upload path, so decoding a few KB of video can balloon into gigabytes of RAM and take the service down. There's no EPSS score yet, it isn't in CISA KEV, and no public exploit or Nuclei template exists — this is a freshly disclosed bug rather than an actively weaponized one — but the CVSS 3.1 score of 6.2 (AC:L/PR:N/UI:N/A:H) reflects a trivially reproducible, zero-interaction denial-of-service that requires no privileges. CISOs running multimodal vLLM deployments should treat this as a straightforward capacity-exhaustion risk on any endpoint that accepts video input, since a single malformed request can knock out a shared inference service used by multiple downstream applications or tenants. Patch to vLLM 0.28.0 immediately if NanoNemotronVL models with audio-in-video are in production; as an interim mitigation, disable use_audio_in_video, enforce request payload size caps at the API gateway, and set hard memory ceilings (cgroups/container limits) around inference workers. Watch for memory-usage spikes correlated with small multimodal payloads as a detection signal until patched.

Sources: NVD GitHub Advisory ATLAS

What is the risk?

Medium severity (CVSS 6.2) with high exploitability characteristics — AC:Low, PR:None, UI:None mean any request reaching the multimodal endpoint can trigger it — but impact is bounded to availability only (C:N/I:N/A:H), no data exposure or code execution. AV:Local in the vector reflects that this is scoped to whoever can reach the vLLM inference API directly, which in practice is often a gateway-fronted internal service, but any deployment that proxies untrusted user uploads to that API inherits full remote exposure. No EPSS score, no CISA KEV listing, and no public exploit/scanner exist yet, so there is no evidence of active exploitation — this is a disclosed design gap, not an in-the-wild attack. Priority should be elevated for any org running NanoNemotronVL with audio-in-video enabled and reachable by external or multi-tenant input; otherwise, patch on the normal cycle.

How does the attack unfold?

Entry point
Attacker submits a small, crafted video as multimodal input to a vLLM endpoint serving a NanoNemotronVL model with use_audio_in_video=True.
AML.T0040
Exploitation
The server's _extract_audio_from_videos calls load_audio_pyav without max_duration_s or max_decode_bytes limits, decoding the video's audio fully into memory.
AML.T0034.001
Impact
Uncapped decoding allocates gigabytes of RAM from a tiny input, exhausting host memory and crashing or hanging the inference service for all users.
AML.T0029

What systems are affected?

Package Ecosystem Vulnerable Range Patched
vLLM pip No patch
91.6K 92 dependents Pushed 6d ago 27% patched ~49d to patch Full package profile →

Do you use vLLM? You're affected.

How severe is it?

CVSS 3.1
6.2 / 10
EPSS
0.1%
chance of exploitation in 30 days
Higher than 2% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Moderate

What is the attack surface?

AV AC PR UI S C I A
AV Local
AC Low
PR None
UI None
S Unchanged
C None
I None
A High

What should I do?

1 step
  1. 1) Upgrade vllm to >=0.28.0, which enforces VLLM_MAX_AUDIO_DECODE_DURATION_S / VLLM_MAX_AUDIO_DECODE_BYTES on the video-derived audio extraction path (see GHSA-936p-m5pv-vvjf). 2) If immediate patching isn't possible, disable use_audio_in_video for NanoNemotronVL deployments, or block/reject video uploads from untrusted sources at the API gateway. 3) Add hard per-request payload size limits and container/cgroup memory ceilings around inference workers so a single request can't exhaust host memory. 4) Isolate multimodal inference workers so an OOM in one doesn't take down shared capacity for other tenants. 5) Monitor for anomalous memory-usage spikes correlated with small video payload sizes as a detection heuristic until patched.

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
MEASURE 2.7 - AI system resilience and security are evaluated and documented
OWASP LLM Top 10
LLM10:2025 - Unbounded Consumption

Frequently Asked Questions

What is CVE-2026-90554?

This vulnerability lets an attacker crash a vLLM inference server by uploading a tiny, highly compressed video to a NanoNemotronVL deployment running with use_audio_in_video enabled — the audio-extraction code path skips the size and duration guards (VLLM_MAX_AUDIO_DECODE_DURATION_S, VLLM_MAX_AUDIO_DECODE_BYTES) that already protect the direct-audio-upload path, so decoding a few KB of video can balloon into gigabytes of RAM and take the service down. There's no EPSS score yet, it isn't in CISA KEV, and no public exploit or Nuclei template exists — this is a freshly disclosed bug rather than an actively weaponized one — but the CVSS 3.1 score of 6.2 (AC:L/PR:N/UI:N/A:H) reflects a trivially reproducible, zero-interaction denial-of-service that requires no privileges. CISOs running multimodal vLLM deployments should treat this as a straightforward capacity-exhaustion risk on any endpoint that accepts video input, since a single malformed request can knock out a shared inference service used by multiple downstream applications or tenants. Patch to vLLM 0.28.0 immediately if NanoNemotronVL models with audio-in-video are in production; as an interim mitigation, disable use_audio_in_video, enforce request payload size caps at the API gateway, and set hard memory ceilings (cgroups/container limits) around inference workers. Watch for memory-usage spikes correlated with small multimodal payloads as a detection signal until patched.

Is CVE-2026-90554 actively exploited?

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

How to fix CVE-2026-90554?

1) Upgrade vllm to >=0.28.0, which enforces VLLM_MAX_AUDIO_DECODE_DURATION_S / VLLM_MAX_AUDIO_DECODE_BYTES on the video-derived audio extraction path (see GHSA-936p-m5pv-vvjf). 2) If immediate patching isn't possible, disable use_audio_in_video for NanoNemotronVL deployments, or block/reject video uploads from untrusted sources at the API gateway. 3) Add hard per-request payload size limits and container/cgroup memory ceilings around inference workers so a single request can't exhaust host memory. 4) Isolate multimodal inference workers so an OOM in one doesn't take down shared capacity for other tenants. 5) Monitor for anomalous memory-usage spikes correlated with small video payload sizes as a detection heuristic until patched.

What systems are affected by CVE-2026-90554?

This vulnerability affects the following AI/ML architecture patterns: model serving, multimodal inference pipelines.

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

CVE-2026-90554 has a CVSS v3.1 base score of 6.2 (MEDIUM). The EPSS exploitation probability is 0.11%.

What is the AI security impact?

Affected AI Architectures

model servingmultimodal inference pipelines

MITRE ATLAS Techniques

AML.T0029 Denial of AI Service
AML.T0034.001 Resource-Intensive Queries
AML.T0049 Exploit Public-Facing Application

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.6
NIST AI RMF: MEASURE 2.7
OWASP LLM Top 10: LLM10:2025

What are the technical details?

Original Advisory

vLLM versions >=0.10.2 and <0.28.0 do not apply any audio decode-size or duration limit when extracting audio from video input for NanoNemotronVL models. In nano_nemotron_vl.py, _extract_audio_from_videos calls load_audio_pyav(BytesIO(video_bytes)) without the max_duration_s or max_decode_bytes parameters, so neither VLLM_MAX_AUDIO_DECODE_DURATION_S nor VLLM_MAX_AUDIO_DECODE_BYTES is enforced (unlike the direct audio upload path in AudioMediaIO). When a NanoNemotronVL model is served with use_audio_in_video=True, an attacker who supplies a small, highly compressed video as multimodal input can force the server to allocate gigabytes of memory during audio decoding, resulting in a denial of service. Fixed in vLLM 0.28.0.

Exploitation Scenario

An attacker with access to a vLLM-served NanoNemotronVL endpoint — for example, a SaaS chatbot or agent that accepts video uploads as multimodal context — crafts a small, highly compressed video file (a few KB) engineered to decode into a very long or high-bitrate audio stream. They submit it as a normal multimodal request. The server's _extract_audio_from_videos function calls load_audio_pyav(BytesIO(video_bytes)) without any duration or byte-size cap, so the full audio track is decoded into memory uncapped, consuming gigabytes of RAM from a tiny input. The inference process OOMs or becomes unresponsive, denying service to every user sharing that instance — repeatable with minimal cost per request, making it an efficient low-effort DoS lever.

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:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
September 12, 2026
Last Modified
September 14, 2026
First Seen
September 12, 2026

Related Vulnerabilities