GitHub Advisoryadvisory · PyPI
GHSA-x3m8-f7g5-qhm7 vLLM Allows Remote Code Execution via Mooncake Integration
CRITICAL
Official page ↗
- Aliases
- CVE-2025-29783
- Ecosystem
- PyPI
- Packages
- vllm
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Weaknesses
- CWE-502
- Reviewed
- 2025-03-19
Affected packages
• PyPI vllm: >= 0.6.5, < 0.8.0 → fixed in 0.8.0
Description
Summary
When vLLM is configured to use Mooncake, unsafe deserialization exposed directly over ZMQ/TCP will allow attackers to execute remote code on distributed hosts.
Details
1. Pickle deserialization vulnerabilities are well documented.
2. The mooncake pipe is exposed over the network (by design to enable disaggregated prefilling across distributed environments) using ZMQ over TCP, greatly increasing exploitability. ~~Further, the mooncake integration opens these sockets listening on all interfaces on the host, meaning it can not be configured to only use a private, trusted network.~~
Only `sender_socket` and `receiver_ack` are allowed to be accessed publicly, while the data actually decompressed by `pickle.loads()` comes from recv_bytes. Its interface is defined as `self.receiver_socket.connect(f\"tcp://{d_host}:{d_rank_offset + 1}\")`, where `d_host` is `decode_host`, a locally defined address 192.168.0.139,from mooncake.json (https://github.com/kvcache-ai/Mooncake/blob/main/doc/en/vllm-integration-v0.2.md?plain=1#L36).
3. The root problem is `recv_tensor()` calls `_recv_impl` which passes the raw network bytes to `pickle.loads()`. Additionally, it does not appear that there are any controls (network, authentication, etc) to prevent arbitrary users from sending this payload to the affected service.
Impact
This is a remote code execution vulnerability impacting any deployments using Mooncake to distribute KV across distributed hosts.
Remediation
This issue is resolved by https://github.com/vllm-project/vllm/pull/14228
Related
Alias · CVE (1)
- CVE-2025-29783 vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. vulnerability
Weakness · CWE (1)
- CWE-502 Deserialization of Untrusted Data weakness
References
- https://github.com/vllm-project/vllm/security/advisories/GHSA-x3m8-f7g5-qhm7 web
- https://nvd.nist.gov/vuln/detail/CVE-2025-29783 advisory
- https://github.com/vllm-project/vllm/pull/14228 web
- https://github.com/vllm-project/vllm/commit/288ca110f68d23909728627d3100e5a8db820aa2 web
- https://github.com/pypa/advisory-database/tree/main/vulns/vllm/PYSEC-2025-63.yaml web
- https://github.com/vllm-project/vllm package