
PoC для уязвимости CVE-2023-1177 в MLflow (Воспроизведение)
Этот репозиторий содержит код эксплойта Proof-of-Concept (PoC) и руководство по воспроизведению уязвимости Local File Inclusion (LFI) в MLflow, идентифицированной как CVE-2023-1177.
Информация об уязвимости:
GET /model-versions/get-artifact обрабатывает пути. Злоумышленник может создать версию модели (model version) с изменённым полем source, указывающим на локальный путь на сервере (используя file:///). Затем, вызвав конечную точку get-artifact с параметром path, указывающим на нужный файл (относительно изменённого source), злоумышленник может прочитать содержимое произвольных файлов в файловой системе сервера с правами пользователя, под которым работает сервер MLflow.Настройка окружения:
environment.yml для точного воссоздания окружения, использовавшегося при тестировании:
conda env create -f environment.yml
attack (или другим, указанным в yml-файле) с Python и всеми необходимыми пакетами (включая mlflow==2.1.1, requests, pandas, databricks-cli и совместимую версию setuptools).conda activate attack
Шаги по воспроизведению уязвимости и PoC, а также ссылка на задание, если вам лень воспроизводить — можете ознакомиться здесь: https://hackmd.io/@paultheal1en/SymHyk10kg