CVE-2026-22807
criticalpriority · attend · 49EPSS 0.008 · 57 %ileexploit · PoCDEEUUSEPSS · scored 2026-10-24
vLLM is an inference and serving engine for large language models (LLMs). Starting in version 0.10.1 and prior to version 0.14.0, vLLM loads Hugging Face `auto_map` dynamic modules during model resolution without gating on `trust_remote_code`, allowing attacker-controlled Python code in a model repo/path to execute at server startup. An attacker who can influence the model repo/path (local directory or remote Hugging Face repo) can achieve arbitrary code execution on the vLLM host during model load. This happens before any request handling and does not require API access. Version 0.14.0 fixes the issue.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · high–critical · 8.8–9.8
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
exploits (1)
Public proof-of-concept and weaponised exploit code.
- otakuliu/CVE-2026-22807_RangeCVE-2026-22807的靶场PoC · poc_in_github
affected products (10)
Products and version ranges known to be affected.
advisories (3)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2026-0190vllm: Mehrere SchwachstellenDeutsch2026-01-21csaf · cert_bundDE
Ein entfernter, authentisierter Angreifer kann mehrere Schwachstellen in vllm ausnutzen, um einen Denial of Service Angriff durchzuführen oder Code auszuführen.
- GHSA-2pc9-4j83-qjmrvLLM affected by RCE via auto_map dynamic module loading during model initialization2026-01-21ghsa · osvUS
# Summary vLLM loads Hugging Face `auto_map` dynamic modules during model resolution **without gating on `trust_remote_code`**, allowing attacker-controlled Python code in a model repo/path to execute at server startup. --- # Impact An attacker who can influence the model repo/path (local directory or remote Hugging Face repo) can achieve **arbitrary code execution** on the vLLM host during model load. This happens **before any request handling** and does **not require API access**. --- # Affected Versions All versions where `vllm/model_executor/models/registry.py` resolves `auto_map` entries with `try_get_class_from_dynamic_module` **without checking `trust_remote_code`** (at least current `main`). --- # Details During model resolution, vLLM unconditionally iterates `auto_map` entries from the model config and calls `try_get_class_from_dynamic_module`, which delegates to Transformers’ `get_class_from_dynamic_module` and **executes the module code**. This occurs even when `trust_remote_code` is `false`, allowing a malicious model repo to embed code in a referenced module and have it executed during initialization. ### Relevant code - `vllm/model_executor/models/registry.py:856` — auto_map resolution - `vllm/transformers_utils/dynamic_module.py:13` — delegates to `get_class_from_dynamic_module`, which executes code --- # Fixes * https://github.com/vllm-project/vllm/pull/32194 # Credits Reported by **bugbunny.ai**
- PYSEC-2026-2010vLLM affected by RCE via auto_map dynamic module loading during model initialization2026-07-07vendor · osvUS
# Summary vLLM loads Hugging Face `auto_map` dynamic modules during model resolution **without gating on `trust_remote_code`**, allowing attacker-controlled Python code in a model repo/path to execute at server startup. --- # Impact An attacker who can influence the model repo/path (local directory or remote Hugging Face repo) can achieve **arbitrary code execution** on the vLLM host during model load. This happens **before any request handling** and does **not require API access**. --- # Affected Versions All versions where `vllm/model_executor/models/registry.py` resolves `auto_map` entries with `try_get_class_from_dynamic_module` **without checking `trust_remote_code`** (at least current `main`). --- # Details During model resolution, vLLM unconditionally iterates `auto_map` entries from the model config and calls `try_get_class_from_dynamic_module`, which delegates to Transformers’ `get_class_from_dynamic_module` and **executes the module code**. This occurs even when `trust_remote_code` is `false`, allowing a malicious model repo to embed code in a referenced module and have it executed during initialization. ### Relevant code - `vllm/model_executor/models/registry.py:856` — auto_map resolution - `vllm/transformers_utils/dynamic_module.py:13` — delegates to `get_class_from_dynamic_module`, which executes code --- # Fixes * https://github.com/vllm-project/vllm/pull/32194 # Credits Reported by **bugbunny.ai**
also known as (6)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (26)
External citations — patches, advisories, analysis.
- https://github.com/vllm-project/vllm/commit/78d13ea9de4b1ce5e4d8a5af9738fea71fb024e5cnnvd
- https://github.com/vllm-project/vllm/pull/32194cnnvd
- https://github.com/vllm-project/vllm/releasesPatchcnnvd
- https://github.com/vllm-project/vllm/releases/tag/v0.14.0cnnvd
- https://github.com/vllm-project/vllm/security/advisories/GHSA-2pc9-4j83-qjmrcnnvd
- https://github.com/vllm-project/vllm/commit/78d13ea9de4b1ce5e4d8a5af9738fea71fb024e5enisa_euvd
- https://github.com/vllm-project/vllm/pull/32194enisa_euvd
- https://github.com/vllm-project/vllm/releases/tag/v0.14.0enisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan