Listen to this Post
How CVE-2025-30202 Works
vLLM versions 0.5.2 to 0.8.5 expose an XPUB ZeroMQ socket bound to all interfaces in multi-node deployments. This socket, intended for tensor parallelism communication, inadvertently broadcasts internal vLLM state data to any connected client. Attackers can exploit this by:
1. Connecting to the exposed XPUB socket, leaking sensitive internal state data (though not directly useful).
2. Spamming connections without reading data, causing resource exhaustion and denial of service.
The vulnerability stems from improper access controls and lack of firewall enforcement for ZeroMQ ports.
DailyCVE Form
Platform: vLLM
Version: 0.5.2 – 0.8.4
Vulnerability: DoS/Data Exposure
Severity: Critical
Date: 05/14/2025
What Undercode Say:
Exploit:
import zmq context = zmq.Context() sub_socket = context.socket(zmq.SUB) sub_socket.connect("tcp://<vLLM_HOST>:<ZMQ_PORT>") Default port often 5556 while True: print(sub_socket.recv_string()) Leaks internal state
Mitigation:
1. Upgrade to vLLM ≥ 0.8.5.
2. Firewall ZeroMQ ports (default: 5556):
sudo iptables -A INPUT -p tcp --dport 5556 -j DROP
3. Bind ZeroMQ to localhost:
zmq_socket.bind("tcp://127.0.0.1:5556")
Detection:
netstat -tuln | grep 5556 Check exposed ZMQ ports
Analytics:
- Attack Complexity: Low (no auth required).
- Impact: High (DoS + unintended data exposure).
- Patch Gap: ~3 months (from discovery to fix).
Debugging:
import logging logging.basicConfig(level=logging.DEBUG) Monitor ZMQ connections
References:
Sources:
Reported By: nvd.nist.gov
Extra Source Hub:
Undercode