Findings

CVE-2025-66455

LMDeploy is a toolkit for compressing, deploying, and serving large language models.

Published Sep 18, 2026 · updated Oct 14, 2026

LMDeploy is a toolkit for compressing, deploying, and serving large language models. Starting in version 0.9.2 and prior to version 0.16.0, LMDeploy's PyTorch DistServe/PD-disaggregation control plane used to deserialize messages received through a ZeroMQ PULL socket. PyZMQ implements using Python pickle deserialization, which can execute arbitrary code while reconstructing an object. The peer address used by the receiver was supplied through the HTTP endpoint. An attacker who could reach an affected DistServe API server could cause the server to connect to an attacker-controlled ZeroMQ endpoint and deserialize a crafted pickle payload. API-key authentication is not enabled unless the operator explicitly configures it. As a result, affected DistServe deployments without API keys allowed unauthenticated remote code execution with the privileges of the LMDeploy serving process. This issue affects the PyTorch backend when PD-disaggregation/DistServe is enabled. Ordinary deployments that do not use the affected disaggregated-serving path do not expose this data flow. The fix was released in LMDeploy 0.16.0. Users who cannot upgrade immediately should prevent untrusted clients from reaching endpoints, restrict the DistServe HTTP and ZeroMQ control planes to trusted cluster networks, configure API-key authentication, and block arbitrary outbound ZeroMQ connections from serving nodes. These measures reduce exposure but do not make pickle deserialization safe.

Timeline

Detection, updates, and resolution for this record.

  1. Sep 18, 2026 · NIST NVD

    Detected

    LMDeploy is a toolkit for compressing, deploying, and serving large language models. Starting in version 0.9.2 and prior to version 0.16.0, LMDeploy's PyTorch DistServe/PD-disaggregation control plane used to deserialize messages received through a ZeroMQ PULL socket. PyZMQ implements using Python pickle deserialization, which can execute arbitrary code while reconstructing an object. The peer add

  2. Oct 14, 2026 · NIST NVD

    Updated

    LMDeploy is a toolkit for compressing, deploying, and serving large language models. Starting in version 0.9.2 and prior to version 0.16.0, LMDeploy's PyTorch DistServe/PD-disaggregation control plane used to deserialize messages received through a ZeroMQ PULL socket. PyZMQ implements using Python pickle deserialization, which can execute arbitrary code while reconstructing an object. The peer add

Sources

  • CVE.orgCVE-2025-66455

    Official CVE identifier

    cve.org
  • FIRST EPSSCVE-2025-66455

    30-day exploitation probability 0.7%

    first.org
  • NIST NVDCVE-2025-66455

    LMDeploy is a toolkit for compressing, deploying, and serving large language models. Starting in version 0.9.2 and prior to version 0.16.0, LMDeploy's PyTorch DistServe/PD-disaggregation control plane used to deserialize messages received through a ZeroMQ PULL sock

    nvd.nist.gov

References

CVE-2025-66455 · ZeroDay Findings