CVE-2026-96455 in Reachy Mini
要約
〜によって VulDB • 2026年09月23日
Reachy Miniのデーモンは、ロボットを管理するためのHTTP APIを公開しています。そのアプリインストールエンドポイントである `POST /apps/install`(ソースコード上では `src/reachy_mini/daemon/app/routers/apps.py` に位置)には認証がありません。ハンドラーが依存しているのは `Depends(get_app_manager)` だけであり、これはアプリケーションの状態からマネージャーオブジェクトを返すだけの処理のため、このチェーン内のどこにも資格情報のチェックは行われません。
エンドポイントはHugging Face Spaceの名前を含むAppInfoボディを受け取ります。デーモンはそのSpaceをダウンロードし、`src/reachy_mini/apps/sources/local_common_venv.py` の `install_package` を介してuvまたはpipを使用してPythonパッケージとしてインストールします。Pythonパッケージのインストールはパッケージ独自のビルドおよびセットアップコードを実行するため、どのSpaceを選択するかが、ロボットが実行するコードを決定することになります。誰でも公開されたHugging Face Spaceをパブリッシュできるため、これは攻撃者にとって意味のある制限ではありません。
この脆弱性が及ぶ範囲はモデルに依存します。`src/reachy_mini/daemon/app/main.py` の `_resolve_bind_host` において、デーモンは無線版として実行される場合は `0.0.0.0` にバインドし、それ以外の場合は `127.0.0.1` にバインドします。ベンダー自身のコメントには「ロボットがLAN上で到達可能である必要がある」と説明されています。したがって、無線ユニットでは、同じネットワーク上の任意のホストから資格情報なしでコードをインストールして実行することができます。
関連する変更の一つは既にリリースされていましたが、この問題を修正したものではありません。バージョン1.8.2では、ワイルドカードCORSポリシーがlocalhostおよびTauriオリジンからのアクセス許可リストに置き換えられました。これにより、被害者が訪問したウェブページがバックグラウンドでエンドポイントを静かに呼び出すブラウザ駆動の攻撃経路は閉ざされました。しかし、この問題には影響しません:CORSはブラウザによって強制され、スクリプトがレスポンスを読み取れるかどうかを規定するものですが、ネットワーク上の他のマシンからの直接HTTPリクエストでは、ブラウザもプリフライト要求もなく、CORSチェック自体が行われません。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.