LMCache — Ejecución remota de código en modo multiproceso por deserialización insegura (CVE-2026-105192)
Fecha de publicación: 7 de octubre de 2026
Categoría: Vulnerability / Artificial Intelligence
Introducción
Una vulnerabilidad de severidad crítica descubierta en LMCache, un software de código abierto diseñado para acelerar servidores de modelos de lenguaje grande (LLM) como vLLM, permite a un atacante ejecutar comandos arbitrarios en el servidor de caché sin necesidad de autenticación previa. El fallo reside en el modo multiproceso del componente, donde el socket de transporte ZeroMQ procesa mensajes de manera insegura. Investigadores de seguridad de JFrog identificaron el problema y revelaron que las imágenes de contenedor oficiales ejecutan el proceso con privilegios de root, amplificando drásticamente el impacto ante una exposición en redes rutearas.
¿Qué es LMCache y el modo multiproceso? (Análisis General)
LMCache actúa como un sistema de almacenamiento distribuido y caché de bloques KV (Key-Value) para optimizar la inferencia en modelos de lenguaje de gran escala. En implementaciones avanzadas o clústeres de múltiples nodos, LMCache opera en un modo multiproceso (también denominado modo distribuido), donde un servicio de caché independiente escucha peticiones para que los procesos de los trabajadores (workers) compartan bloques de caché de manera eficiente.
El problema crítico se rastrea bajo los siguientes identificadores oficiales verificados en NVD:
- CVE-2026-105192: Puntuación CVSS v3.1 de 9.8 (CRÍTICA) con vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Las clases de debilidad correspondientes (CWE) son CWE-306 (Missing Authentication for Critical Function) y CWE-502 (Deserialization of Untrusted Data). - CVE-2026-105756: Puntuación CVSS v3.1 de 6.5 (MEDIA) con vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. Las clases asociadas son CWE-20 (Improper Input Validation) y CWE-248 (Uncaught Exception).
¿Cómo funciona? (Análisis Técnico)
El análisis del mecanismo de explotación expone una falla clásica de diseño en la gestión de protocolos de red y serialización de objetos en Python:
- Flujo inicial de entrada y transporte ZeroMQ: El servidor multiproceso de LMCache abre un socket ZeroMQ del tipo
ROUTER(por defecto en el puerto TCP 5555) sin implementar ningún mecanismo de autenticación para que los procesos trabajadores se registren y compartan datos en caché. - Deserialización insegura mediante Pickle: Los mensajes enviados a través de este socket utilizan el formato msgpack, pero una extensión específica (código de extensión 1) transfiere datos directamente a la función
DeviceIPCWrapper.Deserialize. Esta función invoca de manera subyacentepickle.loadsmientras el servidor decodifica los argumentos de la solicitud y antes de que se ejecute cualquier lógica de validación o controlador. - Ejecución de código como Root: Un mensaje único fabricado y enviado por un atacante no autenticado a través de un socket
DEALERde ZeroMQ provoca la deserialización de objetos maliciosos en Python, ejecutando código arbitrario con los privilegios del usuario que ejecuta LMCache. Dado que las imágenes oficiales de contenedores ejecutan el proceso con privilegios de root, el compromiso del nodo es total. - Efecto colateral en vLLM (CVE-2026-105756): En versiones de vLLM anteriores a la 0.30.0, los modelos de peticiones compatibles con OpenAI aceptaban valores de
cache_saltsin validar restricciones de longitud o caracteres. Al interactuar con LMCache, un valor malformado provocaba un errorValueErrorno capturado durante la búsqueda de caché, causando la terminación abrupta del núcleo del motor (EngineCore) y generando una condición de denegación de servicio (DoS) concurrente.
Sistemas / Entornos Afectados
El impacto se concentra en infraestructuras de despliegue de IA que integran LMCache en arquitecturas distribuidas:
| CVE | Categoría (CWE) | Impacto | CVSS | Vector (resumido) |
|---|---|---|---|---|
| CVE-2026-105192 | CWE-306, CWE-502 | RCE (Ejecución Remota de Código) | 9.8 (Crítico) | Red / Sin Autenticación / Sin Privilegios |
| CVE-2026-105756 | CWE-20, CWE-248 | Denegación de Servicio (DoS) | 6.5 (Medio) | Red / Autenticación Baja / Impacto Alto en Disponibilidad |
- Software afectado (CVE-2026-105192): LMCache desde la versión 0.3.9 (octubre de 2025) hasta la versión estable 0.5.5, incluyendo candidatos de lanzamiento 0.5.6 y ramas de desarrollo activas.
- Software afectado (CVE-2026-105756): vLLM en versiones anteriores a la 0.30.0 (corregido en v0.30.0).
- Condición de exposición: El servidor por defecto escucha exclusivamente en
localhost. Sin embargo, despliegues avanzados (como clústeres multi-nodo o ejemplos base en Kubernetes mediante DaemonSets) configuran explícitamente el parámetro--hostcon una dirección ruteara IP accesible externamente, abriendo el puerto a atacantes de red.
Mitigación y Detección
Remediación
- Restricción de Red y Binding: Hasta la publicación de un parche oficial por parte de los mantenedores, los administradores deben evitar asignar direcciones IP ruteables públicas o externas al servidor multiproceso de LMCache. Asegúrese de que el servicio escuche únicamente en
localhosto en redes internas de clúster estrictamente confiadas. - Segmentación mediante Cortafuegos: Implemente reglas estrictas de filtrado de paquetes (firewall/Security Groups) en el puerto TCP 5555 para limitar el acceso al socket de transporte únicamente a los nodos internos legítimos del clúster de inferencia.
- Actualización de vLLM: Actualice el motor vLLM a la versión 0.30.0 o superior para mitigar la vulnerabilidad secundaria de denegación de servicio relacionada con
cache_salt.
Detección
- Monitoreo de Conexiones de Red: Audite las interfaces de red de los clústeres de IA para detectar conexiones entrantes no autorizadas hacia los puertos de transporte ZeroMQ (por defecto 5555).
- Análisis de Logs del Contenedor: Revise registros en busca de terminaciones inesperadas de procesos EngineCore o excepciones no controladas de tipo
ValueErrorasociadas a parámetros de caché.
Nota de Inteligencia Defensiva: La exposición de servicios de mensajería asíncrona internos (como ZeroMQ) hacia redes no confiables combinada con rutinas de deserialización implícita representa un vector crítico de intrusión que elude los perímetros tradicionales de seguridad en aplicaciones de inteligencia artificial.
Recapitulando
La vulnerabilidad crítica CVE-2026-105192 en LMCache ilustra los riesgos asociados al uso de mecanismos de serialización inseguros (pickle) en protocolos de transporte internos cuando estos se exponen accidentalmente a través de configuraciones de red ruteables. Con un puntaje CVSS de 9.8 y la ejecución de comandos con privilegios de root en contenedores predeterminados, la ausencia temporal de un parche exige a los equipos de operaciones implementar medidas estrictas de aislamiento de red y segmentación perimetral para proteger los entornos de inferencia de LLM.
Referencias
- Khandelwal, S. (2026, 7 de octubre). Unpatched Critical LMCache Flaw Lets Unauthenticated Attackers Run Code Remotely. The Hacker News. https://thehackernews.com/2026/10/unpatched-critical-lmcache-flaw-lets.html
- JFrog Security Research. (2026). LMCache is vulnerable to unauthenticated remote code execution via pickle deserialization on the multiprocess ZMQ transport (CVE-2026-105192). https://research.jfrog.com/vulnerabilities/lmcache-is-vulnerable-to-unauthenticated-remote-code-execution-via-pickle-deserialization-on-the-multiprocess-zmq-transport-cve-2026-105192-jfsa-2026-001694382/
- National Vulnerability Database (NVD). (2026). CVE-2026-105192 Detail. National Institute of Standards and Technology. https://www.cve.org/CVERecord?id=CVE-2026-105192
- National Vulnerability Database (NVD). (2026). CVE-2026-105756 Detail / vLLM Security Advisory. https://github.com/vllm-project/vllm/security/advisories/GHSA-2823-qmq8-rwvj
- LMCache Project. (2026). Multiprocess mode documentation & IPC wrapper. https://docs.lmcache.ai/mp/index.html y https://github.com/LMCache/LMCache/blob/v0.5.5/lmcache/v1/platform/base/ipc_wrapper.py