
PoC der CVE-2023-1177-Schwachstelle in MLflow (Reproduktion)
Dieses Repository enthält den Proof-of-Concept-Exploit (PoC) und eine Anleitung zur Reproduktion der Local File Inclusion (LFI)-Schwachstelle in MLflow, identifiziert als CVE-2023-1177.
Informationen zur Schwachstelle:
GET /model-versions/get-artifact Pfade verarbeitet. Ein Angreifer kann eine Modellversion (model version) mit einem source-Feld erstellen, das in einen lokalen Pfad auf dem Server geändert wurde (unter Verwendung von file:///). Durch Aufruf des get-artifact-Endpoints mit einem path-Parameter, der auf eine gewünschte Datei zeigt (relativ zum modifizierten source), kann der Angreifer den Inhalt beliebiger Dateien auf dem Dateisystem des Servers mit den Rechten des Benutzers lesen, der den MLflow-Server ausführt.Umgebungseinrichtung:
environment.yml, um exakt die Umgebung zu reproduzieren, die für Tests verwendet wurde:
conda env create -f environment.yml
Dies erstellt eine Umgebung namens attack (oder den im YML definierten Namen) mit Python und allen erforderlichen Paketen (einschließlich mlflow==2.1.1, requests, pandas, databricks-cli und einer kompatiblen setuptools-Version).conda activate attack
Schritte zur Reproduktion der Schwachstelle und PoC sowie eine Challenge; wenn Sie zu faul zum Reproduzieren sind, können Sie hier nachschauen: https://hackmd.io/@paultheal1en/SymHyk10kg