Media

vLLM: Unauthenticated Internal Path and Username Disclosure via Validation Error Messages

  • Publicada: 04.09.2026
  • Actualizado: 11.10.2026 15:18

Summary

When the vLLM API receives a malformed request (e.g., invalid JSON or missing required fields), FastAPI raises a Pydantic RequestValidationError. The validation_exception_handler in vllm/entrypoints/openai/server_utils.py converts this exception to a string via str(exc), which includes the internal file path and line number of the handler function. The existing sanitize_message() function in vllm/entrypoints/utils.py strips memory addresses (e.g., 0x7f...) but does not strip File "...", line X patterns. The result is a user-facing HTTP response that leaks internal system information.

Impact

An unauthenticated attacker can extract the following with a single malformed request:

  • OS username running the vLLM process (e.g., ubuntu)
  • Home directory path (e.g., /home/ubuntu/)
  • Virtual environment path (e.g., vllm-env/)
  • Python version (e.g., 3.12)
  • Internal package structure and line numbers (e.g., vllm/entrypoints/openai/chat_completion/api_router.py)
  • Handler function names per endpoint, enabling precise version fingerprinting

This information aids attackers in constructing targeted exploits: environment paths narrow the attack surface, and handler function names + line numbers enable exact version identification even when the /version endpoint is disabled.

All POST endpoints that accept JSON bodies are affected, including /v1/chat/completions, /v1/completions, /tokenize, and /detokenize.

Workarounds

Deploying vLLM behind a reverse proxy that rewrites error response bodies to strip file paths would mitigate this, though it is fragile.

Remediation Recommendation

Two possible fixes (either suffices):

Option A — Fix validation_exception_handler: Construct the error message from exc.errors() (the structured Pydantic error list) rather than str(exc). This avoids the traceback-style string entirely.

Option B — Fix sanitize_message: Add a regex to strip File "...", line \d+ patterns, similar to how memory addresses are already stripped:

python
import re
msg = re.sub(r'File ".*?", line \d+, in \w+', '[internal]', msg)

Option A is preferred as it addresses the root cause rather than filtering symptoms.

Environment Tested

  • vLLM 0.20.1 (pip install, latest stable as of May 2026)
  • Python 3.12
  • Ubuntu 22.04
  • Model: Qwen/Qwen2-0.5B (text-only; bug is model-independent)

This was fixed here: https://github.com/vllm-project/vllm/commit/e87521626f

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Python (PyPI) vllm < 0.26.0 0.26.0

Referencias

Puntuación CVSS 5.3/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Debilidad (CWE)
CWE-209
Plataforma
Python (PyPI)
Paquete
vllm
Publicada
04.09.2026
Actualizado
11.10.2026 15:18

Fuentes y licencias

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

OSV / GitHub Advisory Database - GHSA-hwrm-c4cx-rf4j - CC BY 4.0

Historial de vulnerabilidades: vllm

Todas las vulnerabilidades publicadas de este paquete (Python (PyPI)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (94) en el archivo
Entradas en total
94
Primera → última
09.2024 10.2026
Sin corrección
5
Explotada en ataques
0

Distribución por gravedad

  • Crítica 9
  • Alta 23
  • Media 47
  • Baja 4
  • Sin evaluar 11

Divulgaciones por año

  1. 2024: 2
  2. 2025: 30
  3. 2026: 62
Gravedad:
  1. vLLM: Unauthenticated Internal Path and Username Disclosure via Validation Error Messages esta entrada
    Media · 5.3 CVE-2026-73555 < 0.26.0 0.26.0
  2. Alta · 7.5 CVE-2026-54234 >= 0.17.1, < 0.24.0 0.24.0
  3. Alta CVE-2026-55514 >= 0.12.0, < 0.24.0 0.24.0
  4. Crítica · 9.1 CVE-2026-48746 >= 0.3.0, < 0.22.0 0.22.0
  5. Crítica · 9.8 CVE-2026-22778 >= 0.8.3, < 0.14.1 0.14.1
  6. Alta · 8.8 CVE-2026-22807 >= 0.10.1, < 0.14.0 0.14.0
  7. Alta · 8.8 CVE-2026-56340 >= 0.10.2, < 0.13.0 0.13.0
  8. Alta · 6.5 CVE-2025-62372 >= 0.5.5, < 0.11.1 0.11.1
  9. Alta · 8.8 CVE-2025-62164 >= 0.10.2, < 0.11.1 0.11.1
  10. Alta · 7.5 CVE-2025-59425 < 0.11.0 0.11.0
Mostrar más (13) Mostrando 20 de 33

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.