Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-76850— LMDeploy Remote Code Execution via Unsafe Pickle Deserialization in the Disaggregated Serving Peer Connector

Quick assessment

Affected
InternLM lmdeploy
Exploitation
Public or AI PoC available; prioritize validation
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

LMDeploy 使用 pickle 对解耦式服务(disaggregated-serving)对等节点之间的消息进行反序列化。 中的 协程通过 接收点对点缓存请求,该方法会使用 对接收到的字节数据进行反序列化。而针对 类型的 检查仅在反序列化完成之后才执行。 提供这些数据字节的对等节点由调用方控制: 将请求体中的 传递给 ZMQ PULL 套接字的 方法;同时,在 中定义的 POST 和 端点,除非服务器启动时配置了 (默认为 ),否则不会实施任何身份验证。 因此,远程攻击者可以引导引擎从其控制的 ZMQ 端点拉

CVSS 9.8 · Critical EPSS 0.98% · P59

Affected Version Matrix 1

VendorProduct Version RangeStatus
InternLM lmdeploy 0.9.2< 0.16.0 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-76850

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
LMDeploy Remote Code Execution via Unsafe Pickle Deserialization in the Disaggregated Serving Peer Connector
Source: CVE Program / CVE List V5
Vulnerability Description
LMDeploy deserializes disaggregated-serving peer messages with pickle. The handle_zmq_recv coroutine in lmdeploy/pytorch/disagg/conn/engine_conn.py reads peer-to-peer cache-free requests with recv_pyobj(), which deserializes the received bytes with pickle.loads(), and the isinstance check against DistServeCacheFreeRequest runs only after deserialization has already completed. The peer that supplies those bytes is caller-controlled: p2p_connect passes remote_engine_endpoint_info.zmq_address from the request body to connect() on the ZMQ PULL socket, and the POST /distserve/p2p_initialize and /distserve/p2p_connect endpoints in lmdeploy/serve/openai/api_server.py apply no authentication unless the server is started with api_keys, which defaults to None. A remote attacker can direct an engine to pull from a ZMQ endpoint under their control and execute arbitrary code in the engine process. Deployments that do not enable disaggregated serving are not affected, because the receive loop is only started once the migration backend accepts the connection.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
可信数据的反序列化
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
InternLM lmdeploy 0.9.2 ~ 0.16.0 -

II. Public POCs for CVE-2026-76850

# POC Description Source Link Shenlong Link
AI-Generated POC Premium
Qwen3.6-35B-A3B · 8263 chars
Pro+ exclusive includes:
Vulnerability reproduction recording (real sandbox build + trigger, exclusive)
In-depth vulnerability mechanism
Trigger conditions & impact
Full executable POC code
Exploit chain & mitigation
POC zip download
100+ AI POC generations per month

III. Intelligence Information for CVE-2026-76850

登录查看更多情报信息。

Patches & Fixes for CVE-2026-76850 (3)

Vendor Advisories for CVE-2026-76850 (1)

Proof of Concept for CVE-2026-76850 (1)

Vendor Pages for CVE-2026-76850 (1)

Other References for CVE-2026-76850 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-76850

No comments yet


Leave a comment