VYPR
Critical severityNVD Advisory· Published Mar 19, 2025· Updated Mar 22, 2025

vLLM Allows Remote Code Execution via Mooncake Integration

CVE-2025-29783

Description

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. When vLLM is configured to use Mooncake, unsafe deserialization exposed directly over ZMQ/TCP on all network interfaces will allow attackers to execute remote code on distributed hosts. This is a remote code execution vulnerability impacting any deployments using Mooncake to distribute KV across distributed hosts. This vulnerability is fixed in 0.8.0.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
vllmPyPI
>= 0.6.5, < 0.8.00.8.0

Affected products

1

Patches

1
288ca110f68d

[Security] Serialize using safetensors instead of pickle in Mooncake Pipe (#14228)

https://github.com/vllm-project/vllmKuntai DuMar 4, 2025via ghsa
1 file changed · +6 6
  • vllm/distributed/kv_transfer/kv_pipe/mooncake_pipe.py+6 6 modified
    @@ -2,13 +2,14 @@
     
     import json
     import os
    -import pickle
     from concurrent.futures import ThreadPoolExecutor
     from dataclasses import dataclass
     from typing import Optional, Union
     
     import torch
     import zmq
    +from safetensors.torch import load as safetensors_load
    +from safetensors.torch import save as safetensors_save
     
     from vllm.config import KVTransferConfig
     from vllm.distributed.kv_transfer.kv_pipe.base import KVPipeBase
    @@ -237,14 +238,13 @@ def tensor_hash(self, tensor: torch.Tensor) -> int:
             return hash(tensor.data_ptr())
     
         def _send_impl(self, tensor: torch.Tensor) -> None:
    -        """Implement the tensor sending logic."""
    -        value_bytes = pickle.dumps(tensor)
    -        self.transfer_engine.send_bytes(value_bytes)
    +        """Implement the tensor sending logic using safetensors."""
    +        self.transfer_engine.send_bytes(safetensors_save({"tensor": tensor}))
     
         def _recv_impl(self) -> torch.Tensor:
    -        """Implement the tensor receiving logic."""
    +        """Implement the tensor receiving logic using safetensors."""
             data = self.transfer_engine.recv_bytes()
    -        return pickle.loads(data)
    +        return safetensors_load(data)["tensor"].to(self.device)
     
         def send_tensor(self, tensor: Optional[torch.Tensor]) -> None:
             """Send tensor to the target process."""
    

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.