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-2024-5452 — Analyse technique détaillée de CVE-2024-5452, une vulnérabilité d'exécution de code à distance dans PyTorch Lightning via la pollution de propriété delta DeepDiff, avec preuve de concept et conseils d'atténuation. | Kitploit
Outils/GitHubGitHub/skrkcb2/cve-2024-5452
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebApprentissage et ÉducationSécurité de l'IA
GitHubskrkcb2/cve-2024-5452

CVE-2024-5452

Analyse technique détaillée de CVE-2024-5452, une vulnérabilité d'exécution de code à distance dans PyTorch Lightning via la pollution de propriété delta DeepDiff, avec preuve de concept et conseils d'atténuation.

Voir le dépôt
3il 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-2024-5452

01. Présentation de RCE et pytorch-lightning

  • 1) Présentation de RCE et pytorch-lightning

    RCE (Remote Code Execution, exécution de code à distance) est une vulnérabilité qui permet à un attaquant d'exécuter du code arbitraire à distance dans un système ou une application, et correspond à CWE-94: Improper Control of Generation of Code ('Code Injection').

    PyTorch Lightning est une bibliothèque qui facilite la gestion de l'entraînement des modèles d'apprentissage profond basés sur PyTorch, et DeepDiff est une bibliothèque qui compare deux objets Python pour analyser leurs différences.

    CVE-2024-5452 est une vulnérabilité dans les fonctionnalités d'application Web liées aux poids des modèles IA de Lightning, exploitant DeepDiff et Lightning, où une validation de l'en-tête faible et une contamination des attributs delta dans DeepDiff provoquent une RCE lors de la désérialisation.

    Nous allons examiner le flux de code qui conduit à cette vulnérabilité, permettant à un attaquant d'injecter des objets arbitraires ou d'exécuter du code à distance (RCE), et explorer des mesures de réponse.

02. Analyse de la vulnérabilité de désérialisation dans l'environnement pytorch-lightning

  • 2.1 Analyse de l'attaque par contamination Delta dans DeepDiff

    [Figure 6] montre le flux de la deuxième requête après configuration du delta : run_once() -> maybe_apply_change() -> _collect_deltas_from_ui_and_work_queues() Dans [Figure 7], la vérification isinstance dans _collect_deltas_from_ui_and_work_queues() est contournée par la configuration contaminée (isinstance(delta, _DeltaRequest) == False), ce qui fait exécuter la branche else. Dans [Figure 8], pour faciliter la compréhension, les résultats de isinstance(delta, _DeltaRequest), delta, et _DeltaRequest(type) sont affichés. La première requête est une requête de configuration normale (en train de définir la falsification), et la requête suivante montre que le type _DeltaRequest est contaminé en str, contournant ainsi la condition. En suivant le flux, voyons l'exemple de la cible suivante, _process_requests. Comme on le voit dans [Figure 9], avec le même principe, _process_requests passe la vérification isinstance(request, _APIRequest) grâce à la configuration contaminée du code POC client à droite. Cette contamination est un cas où un appel isinstance sur une instance d'OrderSet renvoie True pour str. Nous avons vu jusqu'à présent deux formes de contamination isinstance. La situation suivante consiste à fabriquer une configuration qui permet d'appeler des attributs via la contamination. Dans [Figure 10], après le contournement de isinstance et la configuration des fonctions, le 'verrouillage de l'état interne' (_INTERNAL_STATE_VARS défini sur vide) est configuré pour empêcher la vérification de l'état de configuration interne dans [Figure 11].

Dans pytorch-lightning, il est possible d'attaquer en contaminant les attributs delta envoyés à l'endpoint /api/v1/delta de DeepDiff dans le code source de l'application Web.
En examinant des exemples, nous voulons comprendre comment la contamination des attributs dunder de delta provoque une vulnérabilité de désérialisation d'objets.

1) Flux de l'attaque par contamination Delta dans DeepDiff

La première requête est un exemple d'attaque client, configuration de contamination -> validation d'en-tête faible dans /api/v1/delta de DeepDiff -> sauvegarde d'état via la contamination validée.

description de l'image

[Figure 1] POC - Attaque sur endpoint

description de l'image

[Figure 2] POC - Injection de vulnérabilité / Contenu complet de la configuration de contamination

description de l'image

[Figure 3] lightning/api/core/api.py / Partie de la logique de vérification d'en-tête faible

description de l'image

[Figure 4] lightning/api/core/app.py / Section de configuration

description de l'image

[Figure 5] lightning/api/core/app.py / Section de sauvegarde de configuration

La première requête contourne la vérification d'en-tête de /api/v1/delta dans [Figure 3] via [Figure 1], injecte la configuration de contamination (delta) manipulée [Figure 2], puis sauvegarde la configuration via [Figure 4] et [Figure 5]. Voyons maintenant comment ces configurations delta manipulées agissent dans la deuxième requête.

description de l'image description de l'image

[Figure 6] lightning/api/core/app.py / Flux de chemin initial


description de l'image

[Figure 7] Cas de contamination isinstance

description de l'image

[Figure 8] Cas de contamination isinstance 1

description de l'image

[Figure 9] Cas de contamination isinstance 2

description de l'image

description de l'image

description de l'image

[Figure 10] Cas de contamination isinstance 3

description de l'image

[Figure 11_1] Fonction de vérification de _INTERNAL_STATE_VARS dans /lightning/app/core/flow.py

description de l'image

[Figure 11_2] __setattr__ dans /lightning/app/core/flow.py

Avec [Figure 11], la contamination et la configuration globales sont terminées.

description de l'image

[Figure 12] Commande RCE

description de l'image

description de l'image

[Figure 13] Réponse RCE

Finalement, dans [Figure 13], exec est appelé avec les privilèges root pour exécuter la commande de [Figure 12], concluant ainsi l'attaque.

2) Exemple simplifié d'attaque par contamination Delta dans DeepDiff (à gauche : serveur lightning App, à droite : Client)

description de l'image

03. Mesures de réponse

Nous avons examiné le flux d'exécution de la vulnérabilité RCE via la désérialisation d'objets (CVE-2024-5452) dans l'environnement lightning. Il s'agit d'une attaque où le serveur lui-même est compromis, d'où l'importance des mesures de réponse. Nous proposons donc une mise à jour vers la version la plus récente.

  • Mise à jour de lightning

    Si lightning <= 2.2.1, veuillez mettre à jour vers lightning >= 2.3.3.
  • Modification sommaire de la bibliothèque lightning

    Cette mesure est une solution rapide pour les cas inévitables, à titre indicatif seulement. Ajouter une logique simple à l'endpoint /api/v1/delta (chemin /lightning/app/core/api) ou renforcer la partie de vérification de session en amont. depence
  • Détection et blocage via IPS

    L'attaque est testée en spécifiant les attributs dunder dans le JSON via Postman. image 20250210_143207

04. Conclusion

Nous avons examiné la vulnérabilité qui provoque une RCE en contaminant les attributs Dunder via Lightning et DeepDiff. Cette vulnérabilité résulte d'abord d'une validation d'en-tête faible, puis d'une inspection faible des attributs delta, conduisant à une désérialisation d'objets.

05. Références

(poc) https://security.snyk.io/vuln/SNYK-PYTHON-PYTORCHLIGHTNING-7218866
(nist) https://nvd.nist.gov/vuln/detail/CVE-2024-5452

Télécharger l’outil