CVE-2026-27893 is a high-severity (CVSS 8.8) CWE-693 vulnerability in vllm. A fix is available for vllm — see the affected versions and patch details below.
vLLM's hardcoded trust_remote_code=True in NemotronVL and KimiK25 bypasses user security opt-out
Exploitation Status
No confirmed exploitation observed yet
- A successful exploit gives an attacker total control of the affected component, not partial access.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2026-27893.
EPSS Exploitation Probability
EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.
How urgent is this, really
CVE-2026-27893 plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner — EPSS 50%+ and CVSS 7.0+ — is where this CVE doesn't sit, though severity or exploitability alone can still warrant action.
Where this sits among everything scored
Of 378,156 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Real counts from FIRST.org, not a sample — log-scaled since the landscape is heavily right-skewed.
Real-World Exposure
vllmReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Summary
Two model implementation files hardcode trust_remote_code=True when loading sub-components, bypassing the user's explicit --trust-remote-code=False security opt-out. This enables remote code execution via malicious model
repositories even when the user has explicitly disabled remote code trust.
Details
Affected files (latest main branch):
vllm/model_executor/models/nemotron_vl.py:430
vision_model = AutoModel.from_config(config.vision_config, trust_remote_code=True)
- vllm/model_executor/models/kimi_k25.py:177
cached_get_image_processor(self.ctx.model_config.model, trust_remote_code=True)
Both pass a hardcoded trust_remote_code=True to HuggingFace API calls, overriding the user's global --trust-remote-code=False setting.
Relation to prior CVEs:
- CVE-2025-66448 fixed auto_map resolution in vllm/transformers_utils/config.py (config loading path)
- CVE-2026-22807 fixed broader auto_map at startup
- Both fixes are present in the current code. These hardcoded instances in model files survived both patches — different code paths.
Impact
Remote code execution. An attacker can craft a malicious model repository that executes arbitrary Python code when loaded by vLLM, even when the user has explicitly set --trust-remote-code=False. This undermines the security guarantee that trust_remote_code=False is intended to provide.
Remediation: Replace hardcoded trust_remote_code=True with self.config.model_config.trust_remote_code in both files. Raise a clear error if the model component requires remote code but the user hasn't opted in.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | vllm | ≥ 0.10.1&&< 0.18.0 | 0.18.0pip install --upgrade 'vllm==0.18.0' |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for vllm, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update vllm to 0.18.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-27893 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2026-27893 can be triaged on real exposure rather than presence alone.
Tailored to CVE-2026-27893. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
This is an Important vulnerability in vLLM, as shipped in Red Hat AI Inference Server and Red Hat OpenShift AI. The flaw allows remote code execution due to vLLM hardcoding `trust_remote_code=True` when loading sub-components, which bypasses the user's explicit `--trust-remote-code=False` security opt-out. This can…
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat AI Inference Server 3.2 | rhaiis/vllm-cuda-rhel9:1779223654 | RHSA-2026:19724 |
| Red Hat AI Inference Server 3.2 | rhaiis/vllm-rocm-rhel9:1779223651 | RHSA-2026:19725 |
| Red Hat AI Inference Server 3.3 | rhaiis/vllm-cuda-rhel9:1775680192 | RHSA-2026:8746 |
| Red Hat AI Inference Server 3.3 | rhaiis/vllm-rocm-rhel9:1775680262 | RHSA-2026:8747 |
| Red Hat AI Inference Server 3.3 | rhaiis/model-opt-cuda-rhel9:1775749857 | RHSA-2026:8748 |
| Red Hat Enterprise Linux AI 3.3 | rhelai3/bootc-aws-cuda-rhel9:1776871984 | RHSA-2026:10140 |
| Red Hat Enterprise Linux AI 3.3 | rhelai3/disk-image-cuda-rhel9:1776938871 | RHSA-2026:10141 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-vllm-gaudi-rhel9:1780069069 | RHSA-2026:24977 |
Frequently Asked Questions
Is CVE-2026-27893 in your dependencies?
O3 Security finds CVE-2026-27893 across PyPI dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.