
PoC de la vulnérabilité CVE-2023-1177 dans MLflow (Reproduire)
Ce dépôt contient le code d'exploitation Proof-of-Concept (PoC) et les instructions pour reproduire la vulnérabilité Local File Inclusion (LFI) dans MLflow, identifiée comme CVE-2023-1177.
Informations sur la vulnérabilité :
GET /model-versions/get-artifact traite les chemins. Un attaquant peut créer une version de modèle (model version) avec le champ source modifié pour pointer vers un chemin local sur le serveur (en utilisant file:///). En appelant ensuite l'endpoint get-artifact avec le paramètre path pointant vers un fichier souhaité (relatif à la source modifiée), l'attaquant peut lire le contenu de fichiers arbitraires sur le système de fichiers du serveur avec les droits de l'utilisateur qui exécute le serveur MLflow.Configuration de l'environnement :
environment.yml fourni dans ce dépôt pour recréer exactement l'environnement utilisé pour les tests :
conda env create -f environment.yml
attack (ou le nom défini dans le fichier yml) avec Python et tous les paquets nécessaires (notamment mlflow==2.1.1, requests, pandas, databricks-cli et une version compatible de setuptools).conda activate attack
Les étapes pour reproduire la vulnérabilité et le PoC, ainsi qu'un challenge ; si vous êtes trop paresseux pour reproduire, vous pouvez consulter ceci : https://hackmd.io/@paultheal1en/SymHyk10kg