← All advisories
CVE-2025-66455criticalCode execution2026-09-18

CVE-2025-66455: LMDeploy DistServe connects to attacker ZeroMQ peers and unpickles their messages, unauthenticated RCE before 0.16.0

LMDeploy 0.9.2 up to 0.16.0, when PD-disaggregation (DistServe) is enabled on the PyTorch backend, lets anyone who can reach the API server pass a ZeroMQ address to POST /distserve/p2p_connect. The engine connects to it and deserializes what it receives with pickle, so a malicious peer runs code in the serving process. Upgrade to 0.16.0. The same bug was also filed by VulnCheck as CVE-2026-76850.

01.

What it is

EngineP2PConnection.handle_zmq_recv() in lmdeploy/pytorch/disagg/conn/engine_conn.py reads peer messages with PyZMQ's recv_pyobj(), which is pickle.loads(). The type check runs only after deserialization, when the payload has already executed.

The peer address comes from the request body of POST /distserve/p2p_connect. API-key authentication is off unless the operator sets api_keys, so DistServe deployments without keys allow unauthenticated remote code execution.

Ordinary deployments that do not use disaggregated serving do not expose this path. The fix (commit f05b4ad) replaced the pickle-based ZeroMQ protocol and shipped in 0.16.0. VulnCheck published the same issue as CVE-2026-76850.

02.

How to check

  1. Run pip show lmdeploy and see whether the version is 0.9.2 or later but below 0.16.0.
  2. Check whether you run LMDeploy with PD-disaggregation / DistServe, and whether the /distserve/* endpoints are reachable from untrusted networks.
03.

How to fix

  1. Upgrade to LMDeploy 0.16.0 or later.
  2. If you can't upgrade yet, keep /distserve/* and the ZeroMQ control plane on a trusted cluster network, set api_keys, and block arbitrary outbound ZeroMQ connections from serving nodes. The advisory notes these steps reduce exposure but don't make pickle safe.
pip show lmdeploy | grep -i ^version
pip install -U 'lmdeploy>=0.16.0'
04.

Sources

More advisories for this tool
The weekly email

One email a week. Only what changed.

Every new security hole in AI coding tools, MCP servers, app builders and the stacks they generate (Next.js, Supabase, Node, PHP), each with how to check your app and the fix. No roundups of things you already read.

Free, one email a week. Read the latest issue first if you like. One-click unsubscribe in every email. We never sell or share addresses.