
MLflowにおけるCVE-2023-1177脆弱性のPoC (再現)
このリポジトリには、MLflow の Local File Inclusion (LFI) 脆弱性(CVE-2023-1177)に対する Proof-of-Concept (PoC) エクスプロイトコードと再現手順が含まれています。
脆弱性情報:
GET /model-versions/get-artifact がパスを処理する方法に存在します。攻撃者は、source フィールドをサーバ上のローカルパス(file:/// を使用)に改変したモデルバージョンを作成できます。その後、path パラメータに(改変した source からの相対パスで)目的のファイルを指定して get-artifact エンドポイントを呼び出すことで、MLflow サーバを実行しているユーザの権限で、サーバのファイルシステム上の任意のファイルの内容を読み取ることができます。環境構築:
environment.yml ファイルを使用して、テストに使用した環境を正確に再現します。
conda env create -f environment.yml
mlflow==2.1.1、requests、pandas、databricks-cli、および互換性のあるバージョンの setuptools を含む)がインストールされた attack(または yml ファイルで定義された名前)という名前の環境が作成されます。conda activate attack
脆弱性の再現手順と PoC(再現が面倒な場合の参考チャレンジ): https://hackmd.io/@paultheal1en/SymHyk10kg