何が起きたか・対象
DelugeのWebUIでは、画像取得用の/trackerから任意のURLへ接続させる問題と、/jsの静的配信から公開領域外のファイルを読む問題など、複数の欠陥が報告されました。識別子はCVE-2025-46561〜46564で、全てが同じ入力やOS条件で成立するわけではありません。
/trackerは未認証のHTTPリクエストのパスにある値から取得先を決め、取得したHTMLにあるアイコンURLにも接続していました。攻撃者が自分のサイトを指定すると、DelugeのサーバーからGETが届き、そのUser-Agentヘッダーで版を取得できる研究例があります。内部の宛先へ接続できる場合もありますが、そこから秘密を取得できるかは内部APIと応答の扱いに依存します。
別の/js配信では、deluge-allのような既知の名前で始まるかだけを検査します。その後ろに../を重ねたパスも先頭検査を通り、OSが親ディレクトリへの移動を解釈すると、公開領域外のweb.confなどを開いてHTTP応答へ返せました。有効なセッションが設定ファイルに残っていれば再利用でき、そうでなければ取得したパスワードハッシュから元のパスワードを推測する追加条件が必要です。ログイン後、Web APIでプラグインを導入・実行する連鎖が報告されています。
ほかにWindowsで画像拡張子のファイルを領域外へ保存する欠陥と、更新通信の差し替えがあります。更新偽装では、攻撃者がHTTPの更新確認と案内先サイトの応答を変え、利用者に不正な配布物をインストールさせると端末でコードが動くおそれがあります。ファイルの読取・保存・実行と、利用者によるインストールは別々の条件です。
報告・修正・公開の時系列
2.1.1を対象に検証され、2024-08-13に報告されました。2025-04-28に修正版2.2.0が公開され、研究資料の公開は05-08です。
正常ならどう動くはずだったか
トラッカーは、BitTorrentで配信相手の情報を交換するために使うサーバーです。WebUIはそのサイトを表すアイコンを表示する補助機能として、/trackerへ渡された名前から取得先を作り、サーバー側でHTMLやアイコンを取得します。得たアイコンを利用者へ返す処理でも、指定されたURLやHTML内の別のURLへ無条件に接続してはいけません。
静的ファイル配信では、リクエストのパスを公開領域内のファイルへ対応付け、その内容だけをHTTP応答に入れます。画像の保存も実際の内容と最終保存先を、書き込み前に確認する必要があります。更新案内は取得先まで含めて通信相手と内容の完全性を確認し、通信経路上の差し替えで配布先が変わらないようにします。
技術的な原因
/trackerは、未認証のHTTPリクエストのパスからURLを作って接続し、取得したHTMLにあるアイコンURLにもアクセスしていました。攻撃者がURLを選べるため、画像取得の機能で内部などの意図しない宛先へ通信させるSSRFになります。保存するアイコン名にもパスの検査不足があり、Windowsでは領域外へ画像拡張子のファイルを書けました。内容の画像検査は書き込み後だったため、保存そのものを防げませんでした。 保存名にはHTTPパス由来のhostと、アイコンのMIME型から決めた画像拡張子を使います。hostへ親移動を含む値が入ると、連結した保存先が領域外になる場合があり、研究はWindowsで再現しています。Linuxでは同じ例が機能しないことも記録されています。OS間の全ての処理差までは確認していません。
/js配信経路は、パス文字列の先頭が既知の名前かだけを検査していました。後で上位フォルダへの移動をOSが解釈すると、公開領域外のファイルも開き、その内容をHTTPレスポンスで返してしまいます。/trackerの接続先制御とは別の不備です。 例えば先頭がdeluge-allなら、その後の../の意味までこの検査では確かめません。先頭一致という文字列の条件と、OSが解決した最終ファイルが公開領域内という条件が異なります。
更新確認は暗号化されていないHTTP通信で行い、更新案内の「Goto Website」もHTTPのサイトを開いていました。通信経路上で両方の応答を差し替えられる攻撃者は、新版があるように見せた後、案内先のページやリダイレクト先も変更できます。これはWebUIのファイル配信とは別の経路です。
攻撃が成立する条件と流れ
WebUIへ到達し、対象の取得・配信経路を呼べることが条件です。/jsではファイル名からMIME型を推定し、HTTPレスポンスのContent-Typeを設定します。MIME型が不明ならヘッダー設定で例外になるため、任意のファイルを同じように返せるわけではありません。
研究のアイコン経由の領域外書き込みはWindowsで成立し、MIME型から決める画像拡張子に限定されます。別の/flagは国旗画像を配信する経路で、名前から選ぶ対象がPNGに限定されます。画像以外の設定ファイルも対象になり得る/jsとは、読み取り範囲を区別します。
更新偽装では、攻撃者が更新確認と案内先サイトへの両方のHTTP通信を傍受・変更できることが必要です。利用者が更新案内のボタンを押し、差し替えられたページを信用して不正な配布物をインストールすると、その配布物のコードが利用者の端末で動くおそれがあります。
確認された事実と、想定される影響
ファイル取得の研究例では、/jsからweb.confを読み、パスワードハッシュやセッション情報を応答として取得します。ハッシュはパスワードそのものではなく、候補を計算して比較することで、単純・短いパスワードを推測できるおそれがあります。保存済みセッションにも期限があり、有効なものが残っていることが再利用の条件です。いずれかで認証済みとなった後、プラグイン管理APIを使えると、WebUI側の実行環境で導入したプラグインのコードを動かす連鎖になります。
SSRFの研究例では、攻撃者のサイトへ届くGETリクエストのUser-AgentヘッダーにDelugeの版が入り、攻撃者が使用版を取得できます。その情報は、版ごとの既知の不備を狙えるか判断する材料になります。Delugeのサーバーから接続できる内部の宛先への通信も問題になりますが、内部の秘密取得や状態変更まで成立するかは、GETを受けるAPIの機能と応答の扱いに依存します。 SSRFで取得した内部応答の全体がそのまま攻撃者へ返るとは確認していません。アイコン抽出や内容検査を行う経路であり、内部通信の成立だけから秘密取得を断定しません。
限定的な書き込みは、Windowsと画像拡張子などの条件下で、保管領域外へ内容を保存できる問題です。保存先にファイルを置けることと、そのファイルがプログラムとして実行されることを区別します。更新偽装では、通信を差し替えた攻撃者が不正な配布物のインストールへ誘導し、利用者の端末でコードを動かすことを狙えます。各経路の研究結果と、実際の侵害の観測は分けて扱います。
実際の修正・対応方針
研究の開示時系列では2.2.0で修正されています。各変更差分は網羅的に確認していません。一般策は、実際の接続先の制限、保存・配信パスの最終解決先の確認、書き込み前の検証ですが、そのまま製品の変更内容とは断定しません。
利用者・運用者が確認すること
修正済みのサポート版へ更新し、WebUIを必要な接続元だけへ公開します。漏えいの疑いがあれば資格情報、保存ファイル、プラグインも調べ、補助経路からの変更が残っていないか確認します。
開発者への教訓(教材としての考察)
アイコン取得では、投稿者が決めたURLがサーバーの通信先へ変わります。静的ファイル配信では、HTTPリクエストのパスがOSで開くファイル名へ変わります。機能名で安全と判断せず、その変換先と、取得した内容を誰へ返すかを追う必要があります。
出典・確認範囲
- [1] Several vulnerabilities in Deluge BitTorrent clientGitHub Security Lab / 確認日 2026-10-29
各修正差分の網羅的確認、実悪用の観測、被害件数は未確認です。