CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-114055

CVE-2026-114055: Uncontrolled Resource Consumption in vLLM via Unvalidated Multimodal Kwargs

Amit Schendel
Amit Schendel
Senior Security Researcher

Oct 23, 2026·5 min read·2 visits

Executive Summary (TL;DR)

Unauthenticated remote attackers can crash vLLM multimodal inference instances by supplying extreme keyword parameters in API requests, leading to Out-Of-Memory termination and Denial of Service.

vLLM prior to version 0.31.0 contains an uncontrolled resource consumption vulnerability (CWE-400) in its HTTP API request handling logic. Unauthenticated remote attackers can transmit per-request keyword arguments (`mm_processor_kwargs` and `media_io_kwargs`) that are passed directly into internal multimodal preprocessing pipelines, causing CPU/GPU memory exhaustion and crashing the engine process.

Vulnerability Overview

The vLLM framework serves as an open-source library for high-throughput Large Language Model (LLM) and Multimodal LLM (MLLM) serving. In versions ranging from 0.7.3 up to 0.30.x, the HTTP REST API endpoints—including OpenAI-compatible chat completions (/v1/chat/completions) and pooling endpoints—expose per-request parameters named mm_processor_kwargs and media_io_kwargs.

These request-level keyword dictionaries were designed to allow clients to customize preprocessing parameters for vision and audio inputs. However, because these inputs passed without validation from API entrypoints into backend preprocessing routines, callers could modify internal array construction parameters. The weakness is categorized as CWE-400 (Uncontrolled Resource Consumption).

The attack surface is accessible over the network to any client capable of sending JSON POST payloads to public or multi-tenant vLLM endpoints. No authentication or privileged access is required to exploit the flaw on default deployments.

Root Cause Analysis

The fundamental root cause is the implicit trust placed in client-supplied dictionaries during multimodal tensor initialization. When processing multimodal requests for models such as InternVL, Isaac, or H2OVL, vLLM routes user inputs to model-specific Hugging Face processors and custom image or video transformers.

Parameters such as vision_min_num_patches, patch_size, num_frames, crop boundaries, and sampling frame rates determine the dimensions of output tensors. When an attacker passes artificially inflated numbers within mm_processor_kwargs or media_io_kwargs (for example, setting vision_min_num_patches to several billion), the underlying preprocessing routines attempt to initialize multi-dimensional arrays matching those specifications.

Because vLLM did not enforce upper bounds or restrict parameter overrides, the application executes memory allocation calls corresponding to those extreme values. This rapidly exhausts host CPU memory or GPU VRAM, triggering unhandled memory allocation exceptions or OS-level Out-Of-Memory (OOM) killer signals that abruptly terminate the entire vLLM server process.

Code Analysis & Patch Inspection

Prior to version 0.31.0, the protocol handlers in vllm/entrypoints/generate/base/protocol.py accepted mm_processor_kwargs and media_io_kwargs without inspecting their contents or verifying client authorization. The parameters were forwarded directly to backend model workers.

In patch commit 31f2e70cd3e403aaa471fb7fe3d33a7207aaf3cc (associated with Pull Request #58830), the maintainers implemented a default-deny control function named validate_request_mm_kwargs and introduced a command-line flag --trust-request-mm-kwargs which defaults to False.

# File: vllm/entrypoints/generate/base/protocol.py
 
def validate_request_mm_kwargs(
    *,
    mm_processor_kwargs: dict[str, Any] | None,
    media_io_kwargs: dict[str, dict[str, Any]] | None,
    trust_request_mm_kwargs: bool,
) -> None:
    """Reject untrusted per-request multimodal kwarg overrides."""
    if trust_request_mm_kwargs:
        return
 
    if mm_processor_kwargs:
        raise VLLMValidationError(
            "Per-request mm_processor_kwargs are disabled by default because "
            "they can change multimodal preprocessing resource usage. Start "
            "the server with --trust-request-mm-kwargs only when clients "
            "are trusted.",
            parameter="mm_processor_kwargs",
        )
    if media_io_kwargs:
        raise VLLMValidationError(
            "Per-request media_io_kwargs are disabled by default because "
            "they can change multimodal media loading resource usage. Start "
            "the server with --trust-request-mm-kwargs only when clients "
            "are trusted.",
            parameter="media_io_kwargs",
        )

By default, any attempt to include non-empty mm_processor_kwargs or media_io_kwargs in an API payload raises a VLLMValidationError, returning an HTTP 400 client error before any media processing or tensor allocation occurs.

Exploitation Mechanics

Exploitation does not require bypasses of memory protection mechanisms or complex timing conditions. An attacker constructs a standard HTTP POST request targeted at the /v1/chat/completions endpoint of a vulnerable vLLM deployment.

The payload includes an image or video object along with a nested mm_processor_kwargs parameter containing extreme numeric values. An example JSON body constructed to trigger the vulnerability appears below:

{
  "model": "vllm-multimodal-model",
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "Describe this image"},
        {"type": "image_url", "image_url": {"url": "https://example.com/test.jpg"}}
      ]
    }
  ],
  "mm_processor_kwargs": {
    "vision_min_num_patches": 3000000000
  }
}

Upon receiving this request, the server passes vision_min_num_patches: 3000000000 directly into the image processor constructor. Python's numerical calculation attempts to allocate host memory arrays proportional to 3 billion patches, immediately causing an unhandled memory exception or triggering the Linux OOM killer.

Impact & Security Implications

The overall impact is classified as High severity regarding Availability (CVSS 3.1 Score: 7.5, Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H). Successful exploitation triggers process termination, abruptly dropping all active inference requests connected to the instance.

In multi-tenant cloud environments or public AI API deployments, a single unauthenticated request can disrupt service for all users on the affected node. If vLLM is deployed without automated process restart managers (such as systemd or Kubernetes pod restart policies), the application remains down indefinitely.

Neither confidentiality nor integrity is affected. There is no indication that this flaw enables remote code execution or arbitrary memory read/write capability.

Remediation & Defensive Guidance

Organizations using vLLM should immediately upgrade to version 0.31.0 or later. This release enforces the default-deny policy for per-request multimodal kwargs.

> [!NOTE] > Ensure that system startup commands and configuration scripts do not pass the --trust-request-mm-kwargs flag unless the endpoint is deployed strictly within an isolated internal network serving verified, trusted clients.

For instances running legacy versions where an immediate upgrade is not feasible, security teams should deploy an API Gateway or Web Application Firewall (WAF) rule to strip or reject HTTP request bodies containing the mm_processor_kwargs or media_io_kwargs JSON keys.

Official Patches

vLLM ProjectvLLM Pull Request #58830: Disable request mm_processor_kwargs and media_io_kwargs by default
vLLM ProjectGitHub Security Advisory GHSA-gx7p-2j49-hfq4

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Probability
0.34%
Top 73% most exploited

Affected Systems

vLLM library versions >= 0.7.3 and < 0.31.0Deployments serving MLLMs (Multimodal Large Language Models) via vLLM REST API

Affected Versions Detail

Product
Affected Versions
Fixed Version
vllm
vLLM Project
>= 0.7.3, < 0.31.00.31.0
AttributeDetail
CWE IDCWE-400
Attack VectorNetwork (Unauthenticated)
CVSS v3.17.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
EPSS Score0.00343 (26.67th percentile)
ImpactDenial of Service (Process OOM Crash)
Exploit StatusProof-of-Concept / Regression Tests Available
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-400
Uncontrolled Resource Consumption

The software does not properly control or limit the allocation of limited resources, leading to resource exhaustion.

Known Exploits & Detection

GitHub Fix CommitRegression tests included in fix commit demonstrating request validation behavior and OOM prevention.

Vulnerability Timeline

GitHub Security Advisory GHSA-gx7p-2j49-hfq4 published
2026-10-21
Fix commit 31f2e70cd3e403aaa471fb7fe3d33a7207aaf3cc merged into repository
2026-10-21
CVE-2026-114055 published
2026-10-21

References & Sources

  • [1]GitHub Security Advisory GHSA-gx7p-2j49-hfq4
  • [2]Fix Commit 31f2e70cd3e403aaa471fb7fe3d33a7207aaf3cc
  • [3]vLLM Pull Request #58830
  • [4]vLLM v0.31.0 Release Notes
  • [5]NVD Vulnerability Detail - CVE-2026-114055
  • [6]CVE.org Vulnerability Record
  • [7]VulnCheck Security Advisory

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-62204
6.6

CVE-2026-62204: Arbitrary Bazaar Package Overwrite in SiYuan via Parameter Mismatch

An insufficient verification of data authenticity vulnerability in SiYuan prior to version 3.7.4 allows an attacker to overwrite arbitrary installed marketplace packages (plugins, widgets, themes, and templates). By providing a mismatched package name and package archive repository URL during a Bazaar installation request, arbitrary file write into trusted plugin directories can be achieved, enabling persistence and execution across application restarts.

Alon Barad
Alon Barad
6 views•5 min read
•about 2 hours ago•CVE-2026-115478
7.1

CVE-2026-115478: Incorrect Authorization and Incomplete Cleanup in obsidian-tc

In obsidian-tc versions 1.0.1 through 1.31.3, memory lifecycle tools fail to validate note ownership prior to rematerializing Markdown files and execute non-atomic SQLite database mutations. An authorized caller can overwrite arbitrary note bodies on disk and cause persistent desynchronization between the database memory graph and physical vault files.

Amit Schendel
Amit Schendel
8 views•5 min read
•about 3 hours ago•CVE-2026-115477
7.1

CVE-2026-115477: Human-in-the-Loop Authorization Bypass in obsidian-tc

A high-severity authorization bypass vulnerability in obsidian-tc allows clients to bypass Human-In-The-Loop (HITL) confirmation prompts over Streamable HTTP deployments. Due to incomplete validation of returned prompt responses, an attacker echoing a signed requestState token can force execution of destructive vault operations even if a human user declines or cancels the prompt.

Alon Barad
Alon Barad
10 views•5 min read
•about 4 hours ago•CVE-2026-113790
6.0

CVE-2026-113790: Uncontrolled Resource Consumption in pypdf Container Parsing

A Denial of Service (DoS) vulnerability in pypdf versions prior to 6.21.0 allows remote attackers to cause high CPU and memory resource exhaustion by supplying PDF files containing oversized or deeply nested arrays, dictionaries, or content streams.

Alon Barad
Alon Barad
8 views•5 min read
•about 5 hours ago•CVE-2026-113789
6.0

CVE-2026-113789: Algorithmic Complexity and Resource Exhaustion in pypdf Interactive Form Parsing

An uncontrolled resource consumption and inefficient algorithmic complexity vulnerability in pypdf prior to version 6.21.0 allows remote attackers to trigger application-level denial-of-service (DoS) via crafted PDF form field hierarchies.

Alon Barad
Alon Barad
7 views•5 min read
•about 6 hours ago•CVE-2026-114131
6.5

CVE-2026-114131: Nuxt Route Rules appMiddleware Bypass via Percent-Encoded Route Segments

Nuxt versions 3.11.0 through 3.21.3 and 4.0.0 through 4.4.3 contain an interpretation conflict between the route rules matching engine and the core page routing mechanism. By submitting percent-encoded request path segments, unauthenticated attackers can bypass route rules, including appMiddleware authorization guards, and access rendered server-side page payloads.

Amit Schendel
Amit Schendel
8 views•5 min read