GHSA-x3m8-f7g5-qhm7

Suggest an improvement
Source
https://github.com/advisories/GHSA-x3m8-f7g5-qhm7
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/03/GHSA-x3m8-f7g5-qhm7/GHSA-x3m8-f7g5-qhm7.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-x3m8-f7g5-qhm7
Aliases
Related
Published
2025-03-19T15:55:58Z
Modified
2025-03-22T00:16:08.969630Z
Severity
  • 9.0 (Critical) CVSS_V3 - CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H CVSS Calculator
Summary
vLLM Allows Remote Code Execution via Mooncake Integration
Details

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).

  1. 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

Database specific
{
    "nvd_published_at": "2025-03-19T16:15:32Z",
    "cwe_ids": [
        "CWE-502"
    ],
    "severity": "CRITICAL",
    "github_reviewed": true,
    "github_reviewed_at": "2025-03-19T15:55:58Z"
}
References

Affected packages

PyPI / vllm

Package

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0.6.5
Fixed
0.8.0

Affected versions

0.*

0.6.5
0.6.6
0.6.6.post1
0.7.0
0.7.1
0.7.2
0.7.3