
PoC de la vulnerabilidad CVE-2023-1177 en MLflow (Reproducir)
Este repositorio contiene el código de explotación Proof-of-Concept (PoC) y la guía para reproducir la vulnerabilidad de Inclusión Local de Archivos (LFI) en MLflow, identificada como CVE-2023-1177.
Información de la vulnerabilidad:
GET /model-versions/get-artifact maneja las rutas. Un atacante puede crear una versión de modelo (model version) con el campo source modificado a una ruta local en el servidor (usando file:///). Luego, al llamar al endpoint get-artifact con el parámetro path apuntando a un archivo deseado (relativo al source modificado), el atacante puede leer el contenido de archivos arbitrarios en el sistema de archivos del servidor con los permisos del usuario que ejecuta el servidor de MLflow.Configuración del entorno:
environment.yml proporcionado en este repositorio para recrear exactamente el entorno que se utilizó para las pruebas:
conda env create -f environment.yml
attack (o el nombre definido en el archivo yml) con Python y todos los paquetes necesarios (incluyendo mlflow==2.1.1, requests, pandas, databricks-cli y la versión compatible de setuptools).conda activate attack
Pasos para reproducir la vulnerabilidad y el PoC; si eres perezoso para reproducirlo, también puedes consultar este challenge: https://hackmd.io/@paultheal1en/SymHyk10kg