VYPR
High severityNVD Advisory· Published Apr 30, 2025· Updated Apr 30, 2025

Data exposure via ZeroMQ on multi-node vLLM deployment

CVE-2025-30202

Description

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Versions starting from 0.5.2 and prior to 0.8.5 are vulnerable to denial of service and data exposure via ZeroMQ on multi-node vLLM deployment. In a multi-node vLLM deployment, vLLM uses ZeroMQ for some multi-node communication purposes. The primary vLLM host opens an XPUB ZeroMQ socket and binds it to ALL interfaces. While the socket is always opened for a multi-node deployment, it is only used when doing tensor parallelism across multiple hosts. Any client with network access to this host can connect to this XPUB socket unless its port is blocked by a firewall. Once connected, these arbitrary clients will receive all of the same data broadcasted to all of the secondary vLLM hosts. This data is internal vLLM state information that is not useful to an attacker. By potentially connecting to this socket many times and not reading data published to them, an attacker can also cause a denial of service by slowing down or potentially blocking the publisher. This issue has been patched in version 0.8.5.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
vllmPyPI
>= 0.5.2, < 0.8.50.8.5

Affected products

1

Patches

1
a0304dc504c8

[Security] Don't bind tcp zmq socket to all interfaces (#17197)

https://github.com/vllm-project/vllmRussell BryantApr 28, 2025via ghsa
2 files changed · +5 1
  • docs/source/serving/distributed_serving.md+4 0 modified
    @@ -77,6 +77,10 @@ bash run_cluster.sh \
     
     Then you get a ray cluster of **containers**. Note that you need to keep the shells running these commands alive to hold the cluster. Any shell disconnect will terminate the cluster. In addition, please note that the argument `ip_of_head_node` should be the IP address of the head node, which is accessible by all the worker nodes. The IP addresses of each worker node should be specified in the `VLLM_HOST_IP` environment variable, and should be different for each worker node. Please check the network configuration of your cluster to make sure the nodes can communicate with each other through the specified IP addresses.
     
    +:::{warning}
    +It is considered best practice to set `VLLM_HOST_IP` to an address on a private network segment for the vLLM cluster. The traffic sent here is not encrypted. The endpoints are also exchanging data in a format that could be exploited to execute arbitrary code should a malicious party gain access to the network. Please ensure that this network is not reachable by any untrusted parties.
    +:::
    +
     :::{warning}
     Since this is a ray cluster of **containers**, all the following commands should be executed in the **containers**, otherwise you are executing the commands on the host machine, which is not connected to the ray cluster. To enter the container, you can use `docker exec -it node /bin/bash`.
     :::
    
  • vllm/distributed/device_communicators/shm_broadcast.py+1 1 modified
    @@ -241,7 +241,7 @@ def __init__(
                     self.remote_socket.setsockopt(IPV6, 1)
                     remote_addr_ipv6 = True
                     connect_ip = f"[{connect_ip}]"
    -            socket_addr = f"tcp://*:{remote_subscribe_port}"
    +            socket_addr = f"tcp://{connect_ip}:{remote_subscribe_port}"
                 self.remote_socket.bind(socket_addr)
                 remote_subscribe_addr = f"tcp://{connect_ip}:{remote_subscribe_port}"
             else:
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

6

News mentions

0

No linked articles in our index yet.