MLflow FileStoreのトレースIDには、パスのトラバーサルや任意のファイル書き込みを可能にする脆弱性があります。
MLflow 3.17.1以前のバージョンには、FileStoreのトラッキングバックエンドにパスのトラバーサル脆弱性があり、認証されていない攻撃者が、トラバーサルシーケンスを含む特定のトレースIDをPOST /api/3.0/mlflow/tracesエンドポイントに送信することで、ファイルシステムのパスを制御できるようになります。攻撃者は、FileStore.start_trace()を悪用して、意図された実験トレースディレクトリ外に、攻撃者が制御するメタデータを含むtrace_info.yaml、request_metadata、およびタグファイルを書き込むことができます。ただし、これはサーバープロセスのファイルシステム権限に依存します。FileStoreは、MLflow 3.7.0以前のデフォルトのトラッキングバックエンドであり、それ以降はオプションで利用可能になります(デフォルトはSQLiteデータベースに変更されました)。したがって、影響を受ける範囲の初期バージョンでは、特別な設定がない限り脆弱性がありますが、後期のバージョンでは、FileStoreが明示的に選択された場合にのみ影響を受けます。
影響を受けるパッケージ:
- pip (Python) mlflow: 影響を受けるバージョンは3.17.1以下、3.17.2で修正済み。