
Cette étude analyse les vulnérabilités de désérialisation Python pickle, en se concentrant sur CVE-2024-3568 dans TFAutoModel de Hugging Face Transformers. Nous reproduisons l'exploit pour examiner sa cause racine, les vecteurs d'attaque et les risques.
Présentation du mécanisme de désérialisation pickle et de son principe d'attaque par __reduce__, reproduction de la vulnérabilité de désérialisation CVE-2024-3568 dans la bibliothèque Hugging Face Transformers, analyse des risques de sécurité dans la bibliothèque Transformers et proposition de solutions efficaces de renforcement de la sécurité. Voir le document PDF de l'expérience pour plus de détails.
(Le code de l'auteur du PoC est disponible sur CVE-2024-3568 ou dans le dossier author_inf)
Emplacement de la vulnérabilité
Méthode TFAutoModel.load_repo_checkpoint() (Transformers ≤ v4.37.2)
Principe d'attaque
Le fichier extra_data.pickle contenu dans un point de contrôle malveillant déclenche une exécution de code à distance (RCE) lors de la désérialisation par
pickle.load()Portée concernée
# Voir le PDF de l'expérience pour les détails de configuration
pip install transformers==4.37.2 tensorflow
git clone https://github.com/llm-sec/transformer-hacker
Voir le document PDF pour plus de détails.
Les fichiers test.py et test2.py concernent l'analyse du principe (assisté par AI Wen Xiaobai, merci aux avancées technologiques qui améliorent la productivité).
Génération d'un point de contrôle malveillant (Commandes spécifiques dans le document PDF)
Déclenchement de la vulnérabilité (Exemple de code dans le document PDF)
Validation de l'attaque (Méthode de validation dans le document PDF)
load_repo_checkpoint()Analyse technique détaillée : Veuillez consulter le document PDF de l'expérience pour le principe complet de la vulnérabilité, le processus d'exploitation et les stratégies de défense Implémentation du PoC : le code de l'auteur du PoC est disponible sur CVE-2024-3568 ou dans le dossier author_inf