CVE-2026-105192 Ejecución remota de código sin autenticación en LMCache por deserialización pickle
En el modo multiproceso de LMCache se abre un socket ZeroMQ ROUTER sin autenticación; un mensaje DEALER con código de extensión 1 llega a pickle.loads antes de ejecutar el handler, lo que permite ejecutar código como el usuario del proceso (root en las imágenes oficiales). El puerto por defecto es 5555 y escucha en localhost salvo que se configure --host. Afecta desde v0.3.9 hasta v0.5.5; v0.5.6 elimina pickle.loads de esa ruta.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/111,0 % · percentil 63
- Explotada activamenteNo confirmada
- Exploit públicoSí, 1
Afectados
LMCache
desde 0.3.9 hasta antes de 0.5.6
Qué hacer
- Verificá si usás LMCache y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
- Priorizá la corrección: hay código de explotación público.
Exploits públicos
Código publicado por terceros. Puede ser malicioso: revisalo solo en un entorno aislado.
Calculadora CVSS
CVSS 3.1 · 9.8 CRÍTICA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadAlta
- IntegridadAlta
- DisponibilidadAlta
Descripción original
LMCache multiprocess mode, also called distributed mode, opens an unauthenticated ZeroMQ ROUTER so worker processes can register and share KV cache blocks. Messages on that socket are msgpack. Extension code 1 is passed to DeviceIPCWrapper.Deserialize, which calls pickle.loads, while the server is still decoding request arguments and before the handler runs. A single unauthenticated ZMQ DEALER message to the transport port (default 5555) therefore executes code as the user the LMCache process runs as. Official container images run that process as root. The transport binds to localhost unless the operator sets a routable address with --host, which is how multi-node deployments let peers connect. The decode path shipped in v0.3.9 and is present through v0.5.5, including the v0.5.6 release candidates. v0.5.6, published on 2026-10-14, removes pickle.loads from this path.
Referencias (11)
- github.com/LMCache/LMCache
- pypi.org/project/lmcache/
- github.com/LMCache/LMCache/blob/v0.5.5/lmcache/v1/platform/base/ipc_wrapper.py
- github.com/LMCache/LMCache/blob/v0.3.9/lmcache/v1/multiprocess/custom_types.py
- research.jfrog.com/vulnerabilities/lmcache-is-vulnerable-to-unauthenticated-remote-code-e…
- blog.lmcache.ai/en/2026/10/13/an-update-on-cve-2026-105192/
- github.com/LMCache/LMCache/security/advisories/GHSA-w5f2-9q9c-ff4h
- github.com/LMCache/LMCache/pull/5644
- github.com/LMCache/LMCache/releases/tag/v0.5.6
- github.com/LMCache/LMCache/pull/5684
- github.com/LMCache/LMCache/pull/5685
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.