概要
Music Assistant は ストリーミング サービス と コネクテッド スピーカー を 統合 する オープンソース の メディア ライブラリ マネージャー です。Home Assistant と の 統合 が 人気 で、スマート ホーム 環境 で 広く 利用 されて います。2.6.3 以前 の バージョン で、music/playlists/update API を 通じて .m3u 拡張子 の 制約 を 回避 し、ファイルシステム 上 の 任意 の 場所 に ファイル を 書き込む こと が 可能 です。
コンテナ が root で 動作 して いる こと が 問題 を 悪化 させて おり、Python site-packages ディレクトリ に 悪意 の ある .pth ファイル を 配置 する こと で、Python の 読み込み 時 に 任意 の コマンド が 実行 されます。ネットワーク 隣接 の 未認証 攻撃者 が 悪用 可能 です。
技術的 背景
この 脆弱性 は 3つ の CWE に 分類 される 複合 的 な 問題 です。CWE-22(パス トラバーサル)により ファイル 書き込み 先 の 制限 を 回避 し、CWE-73(外部 制御 ファイル名)に より 攻撃者 が ファイル名 を 指定 でき、CWE-434(制限 なし ファイル アップロード)に より 任意 の コンテンツ を 書き込め ます。
攻撃 の 流れ と して は、プレイリスト 更新 API に 対して .m3u 以外 の 拡張子 を 持つ ファイル パス を 指定 し、パス トラバーサル で Python の site-packages ディレクトリ に .pth ファイル を 書き込みます。.pth ファイル は Python が 起動時 に 自動 で 読み込む ため、次回 の Python プロセス 起動時 に 任意 コマンド が 実行 されます。
Docker コンテナ が root で 動作 する 場合、ファイルシステム 全体 に 書き込み 権限 が ある ため 攻撃 が 容易 に なります。コンテナ の 最小 権限 原則(non-root 実行)の 重要性 を 示す 事例 です。
CVSSベクトル
| 項目 | 値 |
|---|---|
| CVSSスコア | 8.8 |
| 深刻度 | High |
| 攻撃元区分 | ネットワーク隣接 |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | なし |
| ユーザ関与 | なし |
| CWE | CWE-22 (パストラバーサル), CWE-73 (外部制御ファイル名), CWE-434 (制限なしファイルアップロード) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Music Assistant Server | music-assistant | 2.6.3 以前 |
修正バージョンと回避策
- 修正バージョン: 2.7.0
- 回避策: コンテナ を 非 root ユーザー で 実行 する こと で 影響 を 軽減 可能。ネットワーク セグメンテーション で API へ の アクセス を 制限 する こと も 推奨 します
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
