
PoC della vulnerabilità CVE-2023-1177 in MLflow (Riproduzione)
Questo repository contiene il codice Proof-of-Concept (PoC) e le istruzioni per riprodurre la vulnerabilità Local File Inclusion (LFI) in MLflow, identificata come CVE-2023-1177.
Informazioni sulla vulnerabilità:
GET /model-versions/get-artifact gestisce i percorsi. Un attaccante può creare una versione del modello (model version) con il campo source modificato in un percorso locale sul server (usando file:///). Successivamente, chiamando l'endpoint get-artifact con il parametro path che punta a un file desiderato (relativo al source modificato), l'attaccante può leggere il contenuto di file arbitrari sul file system del server con i permessi dell'utente che esegue il server MLflow.Configurazione dell'ambiente:
environment.yml fornito in questo repository per ricreare esattamente l'ambiente utilizzato per i test:
conda env create -f environment.yml
attack (o il nome definito nel file yml) con Python e tutti i pacchetti necessari (inclusi mlflow==2.1.1, requests, pandas, databricks-cli e una versione compatibile di setuptools).conda activate attack
Passaggi per riprodurre la vulnerabilità e PoC; se sei troppo pigro per riprodurla, puoi fare riferimento a questo challenge: https://hackmd.io/@paultheal1en/SymHyk10kg