LMCache CVE-2026-105192: An Unauthenticated ZeroMQ Socket Lets Attackers Run Code on Your Inference Server

By Carlos Montiel | Enterprise AI Specialist
Leer en español →
Published: 2026-10-08 | By: Carlos Montiel | Reading time: ~5 minutes

On October 7, 2026, JFrog published a critical vulnerability (CVSS 9.8) in LMCache, the key-value cache that speeds up inference servers such as vLLM: a single unauthenticated network message is enough to execute code, and no fixed version exists yet.

What LMCache Is and Why It Matters

LMCache is open-source software that stores and reuses the KV cache of language models so that inference engines like vLLM don’t recompute context they have already processed. It is used in self-hosted LLM deployments where several processes or nodes share that cache. It is "invisible" infrastructure: it is neither the model nor the application, but it runs with access to GPUs, models, and often customer data.

How the Flaw Works (CVE-2026-105192)

According to the advisory from JFrog Security Research (discovered by Yuval Moravchick), LMCache’s multiprocess mode opens a ZeroMQ ROUTER socket, on port 5555 by default, with no authentication mechanism at all. Messages travel in msgpack, and a format extension (code 1) calls pickle.loads on the received data. Because that deserialization happens while the server is still decoding the message, the attacker’s code runs before any validation logic gets a chance.

CVE: CVE-2026-105192 CVSS: 9.8 (critical) Affected: LMCache 0.3.9 to 0.5.5 (stable), 0.5.6 RC, and the development branch Vector: message to the ZMQ port (5555 by default), no login Cause: pickle.loads on untrusted data Patch: not available as of Oct 7, 2026

Pickle is a Python format that can rebuild arbitrary objects, including ones that run commands when loaded; deserializing pickle from an untrusted source is therefore equivalent to handing the sender a shell. According to JFrog, the official container images run the process as root, which makes the impact worse.

When You Are Actually Exposed

By default the multiprocess server listens only on the local machine, so another host cannot reach it. Exposure appears when someone starts it with a routable address, something The Hacker News says LMCache’s own Kubernetes deployment example does in order to share cache between nodes. In other words: the "multi-node" setup many teams copy from the documentation is precisely the vulnerable one.

No patch and no advisory from the project. At the time of disclosure, LMCache had not published a security advisory or a fixed version. The Hacker News also mentions six additional reports from October 6 (cross-tenant cache access and command execution in network services) that have no CVE or maintainer confirmation yet; treat them as unverified.

What to Do Today

JFrog recommends not assigning the multiprocess server a routable address and keeping its port on localhost or on a trusted cluster network. Firewall rules reduce the risk but do not eliminate it. The underlying fix, JFrog says, is to replace pickle with a safe format and to authenticate the transport (CURVE or HMAC).

For companies buying or deploying AI: the attack surface of your inference platform doesn’t end at the model. Cache, queue, and worker layers are often born as "internal components" without authentication and get exposed when scaling to multiple nodes. Before moving to multi-node production, require authentication on every internal channel and treat any pickle deserialization as potential remote code execution.
Carlos Montiel
Enterprise AI Solutions Architect
Specialist in LLMs, Agents, and Orchestration
guatemalia.com/#contacto · info@guatemalia.com

Need to implement AI in your company?

Carlos Montiel is an enterprise AI solutions architect. He implements LLMs, Agents, RAG, and orchestrators for companies across Guatemala and Latin America. Reach out for a consultation.

Contact Carlos Montiel

info@guatemalia.com