Una vulnerabilidad crítica en LMCache, software de código abierto que acelera servidores de modelos de lenguaje (LLM) como vLLM, permite a un atacante ejecutar código en el servidor de caché sin necesidad de iniciar sesión. No hay una versión parcheada disponible.
La falla se encuentra en el modo multiproceso de LMCache, donde la caché se ejecuta como un servidor independiente al que los trabajadores del LLM acceden a través de la biblioteca de mensajería ZeroMQ. Un solo mensaje de red dirigido a ese servidor puede ejecutar comandos con los privilegios del usuario que ejecuta el proceso de LMCache. El servidor solo es accesible desde otra máquina cuando un operador lo configura para escuchar en una dirección enrutable, en lugar de localhost, que es la configuración predeterminada.
JFrog divulgó la falla el 7 de octubre y le asignó una puntuación de severidad de 9.8 sobre 10, en el rango crítico, la calificación que otorga a un servidor vinculado a una dirección enrutable. La vulnerabilidad, rastreada como CVE-2026-105192, afecta a LMCache desde la versión 0.3.9, lanzada en octubre de 2025, hasta la 0.5.5, la última versión estable, y también está presente en las versiones candidatas 0.5.6 y en la rama de desarrollo. No existe una versión corregida.
La exposición del servidor depende de una única configuración. Por defecto, el servidor multiproceso escucha solo en la máquina local, por lo que otro host no puede alcanzarlo. Se vuelve accesible cuando un operador lo inicia con una dirección enrutable, similar a cómo las implementaciones multinodo comparten una caché entre máquinas. El ejemplo de implementación en Kubernetes de LMCache inicia el servidor de esa manera, escuchando en todas las interfaces de red. Una copia de LMCache ejecutándose dentro de un único proceso vLLM no abre el puerto en absoluto.
El socket ZeroMQ que abre el servidor multiproceso para que los procesos trabajadores se registren y compartan datos en caché no tiene autenticación. Un tipo de mensaje se deserializa con pickle, un formato de Python que puede contener código y ejecutarlo durante la decodificación. El servidor lo deserializa mientras todavía lee los argumentos del mensaje, antes de cualquier verificación del tipo de mensaje, por lo que un mensaje manipulado puede ejecutar código del remitente. El código se ejecuta con los privilegios del proceso LMCache. Según JFrog, en las imágenes de contenedor oficiales del proyecto, ese proceso se ejecuta como root. La falla fue descubierta por Yuval Moravchick, del equipo de investigación de seguridad de JFrog.
No hay una versión parcheada. Hasta que se publique una, JFrog aconseja a los operadores no asignar una dirección enrutable al servidor multiproceso y mantener su puerto en la máquina local o en una red de clúster confiable. Un cortafuegos que limite quién puede alcanzar el puerto reduce el riesgo, pero no lo elimina, porque cualquier host que aún pueda abrir una conexión puede ejecutar código. LMCache no ha publicado un aviso de seguridad para la falla. El aviso de JFrog no proporciona a los operadores una forma de determinar si un servidor ya ha sido atacado.
Otros informes y una corrección relacionada en vLLM
Por separado, un usuario de GitHub abrió seis informes de seguridad adicionales sobre LMCache el 6 de octubre, el día antes de que se hiciera público CVE-2026-105192. Alegan acceso no autenticado a datos en caché pertenecientes a diferentes inquilinos, así como a varios servicios de red que ejecutan comandos sin inicio de sesión.
Los informes provienen de una sola cuenta, se basan en afirmaciones de prueba de concepto y no tienen CVE, ni confirmación de los mantenedores, ni solución. Uno apunta a una configuración predeterminada de LMCache que desde entonces ha cambiado: un servidor HTTP de administración que escuchaba en todas las interfaces de red en la versión 0.5.5 ahora escucha solo en el host local en las versiones candidatas 0.5.6.
Una falla relacionada en vLLM ya está corregida. Antes de la versión 0.30.0, lanzada el 22 de septiembre, una única solicitud con un valor cache_salt malformado podía bloquear el motor en implementaciones que utilizan el conector multiproceso de LMCache, un error de denegación de servicio rastreado como CVE-2026-105756. Tiene una calificación de 6.5 y no permite la ejecución de código.
El error fundamental, entregar datos de un socket de red no autenticado a pickle, es el mismo que los investigadores encontraron en otros frameworks de inferencia de IA en noviembre de 2025, en un grupo de fallas que denominaron ShadowMQ. No se ha establecido si el código de LMCache comparte una fuente común con esos proyectos.



















Deja una respuesta