本文へ移動
English version →
重大 10.0 急ぎ度: 早めに

Bazarrに認証なしで設定を改ざんされる脆弱性、修正版あり

Bazarrに、認証なしでPlex連携の設定を書き換えられる脆弱性が公表されました。外部やほかの端末から届く環境では修正版へ更新し、まず管理画面が誰に見えているかを確認してください。

CVE-2026-61826 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v3が10.0で、認証なしにネットワークから悪用でき、修正版の1.5.7-beta.14がすでに出ているためです。

関係があるか

Bazarrを自社や自宅のサーバーで動かし、Plexと連携している組織や個人が対象です。管理画面がインターネットや広い社内ネットワークから届く環境ほど影響が大きくなります。

製品影響を受ける版修正版
Bazarr(morpheus65535/bazarr) 1.5.7-beta.14より前の版 1.5.7-beta.14

確かめ方

  1. 1Bazarrの管理画面でシステム情報を開き、版が1.5.7-beta.14より前かどうかを見ます。
  2. 2Dockerで動かしているなら、コンテナのイメージとタグから版を確認します。
  3. 3Bazarrのポートがインターネット、VPNなしの外部、社内の広いセグメントから届くかを、ファイアウォールやリバースプロキシの設定で確かめます。
  4. 4Plex連携を使っていない場合の影響は、ベンダーの告知で確認します。

何が起きたか

メディア用の字幕管理ツールBazarrで、Plex連携を扱うAPI群に認証がかかっていませんでした。本来は同じ画面のAPIにAPIキーが必要ですが、この部分だけ抜けています。そのため、Bazarrに通信できる相手なら誰でも、Plex連携の設定を消したり書き換えたりできます。

原因は、Plex用の各処理に認証を要求する指定が付いておらず、全体で補う仕組みもなかったことです。連携の解除、攻撃者が選んだキーの保存、攻撃者のPlexアカウントの紐付け、接続先サーバーやWebhookの変更といった設定の書き込み処理が、認証なしで呼べました。

接続先サーバーのURLを攻撃者が差し込めると、Bazarrが後から出す通信の宛先を変えられます。その通信には、設定済みのPlexのトークンが付きます。そのため、サーバーサイドリクエストフォージェリ(SSRF)と、認証情報の漏えいにつながります。

1.5.7-beta.14では、これらのAPIに認証が追加されました。

攻撃の流れ

  1. 1

    到達

    Bazarrのポートに通信できる位置から、認証なしでPlex用APIにアクセスします。

  2. 2

    設定の書き換え

    Plex連携の解除、キーの差し替え、接続先サーバーやWebhookの変更を行います。

  3. 3

    アカウント紐付け

    攻撃者のPlexアカウントのトークンが、このBazarrに結び付けられることがあります。

  4. 4

    通信先の誘導

    Bazarrが攻撃者指定のURLへ通信し、そこにPlexのトークンが付いて送られます。

  5. 5

    被害の固定化

    改ざんされた設定が保存され、連携停止や認証情報の漏えいが続きます。

公開されている情報をもとにした流れの例です。

どう悪用されるか

悪用に認証は要りません。ログインもAPIキーも不要で、利用者に何かを操作させる必要もありません。Bazarrにネットワークで届く位置にいれば試せます。攻撃の複雑さは低く、CVSSの評価でも影響範囲が他のコンポーネントに及ぶとされています。

悪用されると、まずPlex連携の設定が壊されたり差し替えられたりして、連携が使えなくなります。設定は保存されるため、Bazarrを再起動しても元に戻りません。

さらに、接続先を攻撃者が選べるため、Plexのトークンが外部に送られるおそれがあります。Bazarrの置かれた内部ネットワークへ通信を向けられる点も、SSRFとして問題になります。

今すぐやること

  1. 1

    修正版に更新する

    Bazarrを1.5.7-beta.14以降に更新します。更新後に動作確認として、Plex連携が従来どおり動くかを見ます。stable版の提供状況は、ベンダーの告知で確認してください。

  2. 2

    現在の版と公開範囲を確認する

    Dockerなら、動いているコンテナのイメージとタグを一覧で見られます。あわせて、Bazarrのポートがどこから届くかをファイアウォールで確かめます。

    docker ps --format '{{.Names}} {{.Image}}'
  3. 3

    Plex連携の設定を点検する

    連携の有効・無効、サーバーのURL、Webhookの登録、紐付いているPlexアカウントに見覚えのない変更がないかを調べます。変更が見つかれば、設定を戻したうえで次の手順に進みます。

  4. 4

    トークンとAPIキーを入れ替える

    改ざんの疑いがある場合や、管理画面を外部に公開していた場合は、BazarrのAPIキーとPlexのトークンを再発行します。Plex側で見覚えのない端末やアプリの許可も外します。

  5. 5

    アクセスログを確認する

    リバースプロキシやBazarrのログに、Plex関連のAPIへの未認証のアクセスが残っていないかを調べます。

すぐ更新できないとき

すぐに更新できないときは、Bazarrへの通信を信頼できる端末に限ります。インターネットに直接公開しているなら、公開をやめます。リバースプロキシの認証やVPNを前段に置き、管理画面とAPIを経由しない限り届かないようにします。ただし、同じネットワーク内の端末からの通信は防げないため、更新までのつなぎにとどめてください。

背景

Bazarrは、SonarrやRadarrが管理する映画やドラマの字幕を自動で探して取得するツールです。多くは家庭や小規模な環境のメディアサーバーの横で動き、Plexなどと連携します。業務の基幹システムではありませんが、PlexのトークンやAPIキーを保持しているため、漏れると連携先のサーバーにも影響が出ます。

今回の脆弱性は、特定の処理に認証を付け忘れたことで生じた、認証の欠落(CWE-862)にあたります。ほかのAPIでは認証が効いているのに、Plex連携用の一群だけが漏れていました。ログイン画面があるからといって、すべてのAPIが守られているとは限らない例です。

よくある質問

Q.Plexを使っていなくても更新が必要ですか。
A.公表された説明は、影響をPlex連携用のAPIとしています。連携を使っていない場合の扱いはベンダーの告知で確認してください。更新すれば認証が追加されるため、使っていなくても更新しておくと安全です。
Q.SonarrやRadarrも更新が必要ですか。
A.この脆弱性はBazarr側のAPIにあり、SonarrとRadarrは対象製品に挙がっていません。ただしBazarrは両者のAPIキーを保持しているため、Bazarrの設定が改ざんされた疑いがあれば、それらのキーの入れ替えも検討してください。

まだ分かっていないこと

  • 1.5.7-beta.14は認証の欠落を埋めた版で、OAuthの状態検証を完全に整えたかどうかは確認できていません。この点は別の残課題として扱われています。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

Bazarr is a companion application to Sonarr and Radarr. Prior to 1.5.7-beta.14, the api_ns_plex namespace in bazarr/api/plex/oauth.py omits @authenticate on its Resource handlers, while normal APIs require an API key and no global authentication hook compensates. Anonymous callers can invoke POST /api/plex/oauth/logout to clear credentials and disable the integration, or POST /api/plex/apikey to persist an attacker-selected key, without a PIN, account or state precondition. POST /api/plex/oauth/pin and GET /api/plex/oauth/pin//check additionally allow an attacker who completes a PIN with an attacker-controlled Plex account to bind that account's token to the instance. PlexPinCheck skips state validation when state_param is absent and merely logs a mismatch without stopping execution. POST /api/plex/select-server, POST /api/plex/oauth/servers, POST /api/plex/webhook/create, POST /api/plex/webhook/delete and POST /api/plex/encrypt-apikey expose further write_config() operations. Attacker-controlled server URLs feed later outbound requests carrying the configured API key in X-Plex-Token, enabling server-side request forgery and credential exposure in addition to persistent configuration tampering and integration denial of service. Version 1.5.7-beta.14 closes the anonymous API-mutation path by adding authentication; complete OAuth state validation is not established and remains a separate residual for curator review.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく