Hydra: Optunaのcustom_search_spaceは、get_methodを通じて、信頼できない呼び出し可能オブジェクトを解決し、実行する可能性があります。

## 概要

`hydra-optuna-sweeper`は、`hydra.sweeper.custom_search_space`で指定された設定に基づいたドット付きパスを受け取り、下位レベルの`hydra.utils.get_method()` APIを使用してそれを解決し、その後、返された呼び出し可能オブジェクトを実行していました。

Hydraのオブジェクト参照ヘルパーは、意図的に入力内容を信頼し、`instantiate()`やロギング設定で使用される実行ポリシーは適用しません。その結果、信頼できないOptunaのマルチラン設定が、Hydraコントローラープロセス内でインストールされているPythonコードの実行を選択する可能性があります。

## 影響

この脆弱性を悪用するには、アプリケーションのOptunaスイープ設定またはコマンドラインオプションを制御し、アプリケーションの環境にインポート可能な呼び出し可能オブジェクトが存在する必要があります。 選択されたコードは、アプリケーションの権限で実行されます。

影響を受けるHydra 1.4の開発版では、この脆弱性は、信頼されたアプリケーションコードによって提供される実行許可リストを回避します。Hydra 1.3には、実行許可リストのセキュリティ境界がなく、そこで同じ変更により、防御の多層化として、以前のブロックリストが適用されます。

## 修正

Optunaスイーパは、現在、設定されたコールバックを`hydra.utils.instantiate()`を通じて、部分的な呼び出し可能オブジェクトとして解決します。Hydra 1.4では、これにより、実行許可リストがコールバックの使用前に適用されます。Hydra 1.3では、防御の多層化として、以前のブロックリストが適用されます。

パブリックな`get_object()`、`get_method()`、`get_static_method()`、および`get_class()`ヘルパーは、依然として下位レベルの信頼できる入力APIです。これらのヘルパーのドキュメントには、現在、信頼できない設定から派生した値を渡すことに対する警告が含まれており、設定に基づいたオブジェクトの作成は`instantiate()`を使用するように指示されています。

## 影響を受けるバージョン

- パッケージ: `hydra-optuna-sweeper`
- 安定版の影響を受ける範囲: `>= 1.2.0, < 1.3.0`
- 安定版で修正されたバージョン: `1.3.0`
- 開発版の影響を受ける範囲: `>= 1.4.0.dev4, < 1.4.0.dev10`
- 開発版で修正されたバージョン: `1.4.0.dev10`

この機能は `1.2.0` で導入され、1.1 リリースのバージョンには含まれていません。
1.4 の開発版では、1.4.0.dev4 から 1.4.0.dev9 までのバージョンで影響がありました。

## 対策

Optuna の設定ファイルやコマンドラインオプションを信頼できるものとして扱ってください。外部からの入力から `custom_search_space` を設定したり、信頼できないユーザーがアプリケーションのインポートパスにモジュールを配置したりしないでください。

報告者:zx (GitHub: @manus-pi)。

影響を受けるパッケージ:
- pip (Python) hydra-optuna-sweeper: 影響を受けるバージョンは 1.2.0 以降、1.3.0 未満。1.3.0 で修正済み。
- pip (Python) hydra-optuna-sweeper: 影響を受けるバージョンは 1.4.0.dev4 以降、1.4.0.dev10 未満。1.4.0.dev10 で修正済み。