Security Vulnerability Report
中文
CVE-2026-27893 CVSS 8.8 HIGH

CVE-2026-27893

Published: 2026-03-27 00:16:22
Last Modified: 2026-03-30 18:56:22

Description

vLLM is an inference and serving engine for large language models (LLMs). Starting in version 0.10.1 and prior to version 0.18.0, 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. Version 0.18.0 patches the issue.

CVSS Details

CVSS Score
8.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:vllm:vllm:*:*:*:*:*:*:*:* - VULNERABLE
vLLM 0.10.1 至 0.18.0 之前

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Proof of Concept (Conceptual) # This PoC demonstrates the bypass of trust_remote_code=False. # It requires a malicious model repository structure. import os from vllm import LLM # Simulate a malicious model path (attacker controlled) malicious_model_path = "./malicious_model_repo" # The user explicitly sets trust_remote_code to False to prevent RCE print("Attempting to load model with trust_remote_code=False...") try: # In vulnerable versions (0.10.1 - <0.18.0), the hardcoded value inside # specific model implementations overrides this user setting. llm = LLM( model=malicious_model_path, trust_remote_code=False, # Security opt-out download_dir="./tmp" ) print("Model loaded. If vulnerable, code from the model repo has already executed.") except Exception as e: print(f"Error: {e}") # Expected behavior in vulnerable versions: # The code inside 'malicious_model_repo/modeling_malicious.py' would execute # regardless of the trust_remote_code=False flag.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-27893", "sourceIdentifier": "[email protected]", "published": "2026-03-27T00:16:22.333", "lastModified": "2026-03-30T18:56:21.730", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "vLLM is an inference and serving engine for large language models (LLMs). Starting in version 0.10.1 and prior to version 0.18.0, 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. Version 0.18.0 patches the issue."}, {"lang": "es", "value": "vLLM es un motor de inferencia y servicio para modelos de lenguaje grandes (LLM). A partir de la versión 0.10.1 y antes de la versión 0.18.0, dos archivos de implementación de modelos codifican de forma rígida 'trust_remote_code=True' al cargar subcomponentes, eludiendo la exclusión voluntaria de seguridad explícita del usuario '--trust-remote-code=False'. Esto permite la ejecución remota de código a través de repositorios de modelos maliciosos incluso cuando el usuario ha deshabilitado explícitamente la confianza en el código remoto. La versión 0.18.0 corrige el problema."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-693"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:vllm:vllm:*:*:*:*:*:*:*:*", "versionStartIncluding": "0.10.1", "versionEndExcluding": "0.18.0", "matchCriteriaId": "2130385B-68E6-4854-AC42-0CBA1F30B487"}]}]}], "references": [{"url": "https://github.com/vllm-project/vllm/commit/00bd08edeee5dd4d4c13277c0114a464011acf72", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/vllm-project/vllm/pull/36192", "source": "[email protected]", "tags": ["Issue Tracking"]}, {"url": "https://github.com/vllm-project/vllm/security/advisories/GHSA-7972-pg2x-xr59", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}