vllm: Malicious model to RCE by torch.load in hf_model_weights_iterator
High7.5CVE-2025-24357 · Published Jan 27, 2025 · updated Aug 7, 2026
### Description The vllm/model_executor/weight_utils.py implements hf_model_weights_iterator to load the model checkpoint, which is downloaded from huggingface. It use torch.load function and weights_only parameter is default value False. There is a security warning on https://pytorch.org/docs/stable/generated/torch.load.html, when torch.load load a malicious pickle data it will execute arbitrary code during unpickling. ### Impact This vulnerability can be exploited to execute arbitrary codes and OS commands in the victim machine who fetch the pretrained repo remotely. Note that most models now use the safetensors format, which is not vulnerable to this issue. ### References * https://pytorch.org/docs/stable/generated/torch.load.html * Fix: https://github.com/vllm-project/vllm/pull/12366
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| vllm PyPI | < 0.7.0 | 0.7.0 |
Details and references
- CVSS 3.1
- CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-502
- Also known as
- CVE-2025-24357, PYSEC-2025-58
- github.com/vllm-project/vllm/security/advisories/GHSA-rh4j-5rhw-hr54
- nvd.nist.gov/vuln/detail/CVE-2025-24357
- github.com/vllm-project/vllm/pull/12366
- github.com/vllm-project/vllm/commit/d3d6bb13fb62da3234addf6574922a4ec0513d04
- github.com/pypa/advisory-database/tree/main/vulns/vllm/PYSEC-2025-58.yaml
- github.com/vllm-project/vllm
- github.com/vllm-project/vllm/releases/tag/v0.7.0
- pytorch.org/docs/stable/generated/torch.load.html
More vLLM advisories
All vLLM| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Mar 202025 | vLLM deserialization vulnerability in vllm.distributed.GroupCoordinator.recv_object | Critical9.8 | No fix yet |
| Mar 202025 | vLLM allows Remote Code Execution by Pickle Deserialization via AsyncEngineRPCServer() RPC server entrypoints | Critical9.8 | No fix yet |
| Mar 202025 | vLLM Deserialization of Untrusted Data vulnerability | Critical9.8 | No fix yet |
| Mar 192025 | vLLM Allows Remote Code Execution via Mooncake Integration | Critical9.0 | 0.8.0 |
| Mar 192025 | vLLM denial of service via outlines unbounded cache on disk | Medium6.5 | 0.8.0 |
| Feb 62025 | vLLM uses Python 3.12 built-in hash() which leads to predictable hash collisions in prefix cache | Low2.6 | 0.7.2 |