
CVE-2023-1177の概念実証エクスプロイト。MLflowにおけるパストラバーサル(ディレクトリトラバーサル)の脆弱性であり、細工されたモデル名を介した不正なファイルアクセスを実証します。
MLflow は、機械学習ライフサイクル全体を管理するためのオープンソースプラットフォームです。
主な機能:
MLflow は以下の4つの主要機能を扱います:
実験を追跡してパラメータと結果を記録・比較する(MLflow Tracking)。
ML コードを再利用可能で再現可能な形式にパッケージ化し、他のデータサイエンティストと共有したり、本番環境に移行したりする(MLflow Projects)。
さまざまな ML ライブラリのモデルを、さまざまなモデルサービングおよび推論プラットフォームに管理・デプロイする(MLflow Models)。
MLflow Model の完全なライフサイクルを協調的に管理するための中央モデルストアを提供する。モデルのバージョニング、ステージ遷移、アノテーションを含む(MLflow Model Registry)。
ライブラリ非依存: MLflow はライブラリ非依存であり、すべての機能が REST API と CLI を通じてアクセスできるため、あらゆる機械学習ライブラリおよびあらゆるプログラミング言語で使用できます。
API: このプロジェクトには、利便性のための Python API、R API、Java API が含まれています。
出典: https://mlflow.org/docs/latest/index.html
MLflow にパストラバーサル(パス横断)の脆弱性が発見されました。 パストラバーサルは、攻撃者が意図されたディレクトリの外部に保存されているファイルやディレクトリにアクセスできるようにする Web 脆弱性の一種です。攻撃者はさまざまな手法を用いてこの脆弱性を悪用し、機密データへの不正アクセスや任意のコード実行を行います。パストラバーサル攻撃は、入力検証とアクセス制御の対策によって防ぐことができます。
この脆弱性は、Dan McInerney によって発見されました。
詳細はこちら: https://huntr.dev/bounties/1fe8f21a-c438-4cba-9add-e8a5dab94e28/
[CVE-2023-1177]
GitHub リポジトリ mlflow/mlflow の 2.2.1 より前のバージョンにおけるパストラバーサル: '..\filename'。
詳細はこちら: https://nvd.nist.gov/vuln/detail/CVE-2023-1177
脆弱性をテストおよび悪用するために使用できる小さな Python スクリプトを作成しました。
モデル名に一意の ID を作成し、その後すべての URL に連続してアクセスします。
