Twitch拡張機能「JeetBot」で約3万1000人のOAuthトークンが外部送信、セキュリティ企業が報告
要点
-
Twitchの動画視聴機能を拡張するブラウザ拡張機能「JeetBot」が、約3万1,000人分のOAuth認証トークンを外部サーバーへ送信していたことが判明した。
-
動画プレイリストの取得リクエストにトークンを平文のクエリパラメータとして付加しており、中継プロキシのログに記録される仕様となっていた。
-
ロシア語圏の特定10チャンネルを視聴している場合のみ、トークン送信処理が除外される仕組みが組み込まれていた。
-
開発者は実装上の見落としだったとして修正版を公開したが、過去に送信されたトークン自体は自動失効しないとして注意を呼びかけている。
-
Twitch向けの動画視聴支援ブラウザ拡張機能「Twitch Enhanced Viewer | JeetBot」が、利用者のアカウント認証情報であるOAuthトークンを外部のプロキシサーバーへ送信していたことが、セキュリティ企業Socketの調査によって明らかになった。Google ChromeおよびMozilla Firefox向けに配布されており、合計で約3万1,000人のユーザーに影響が及んでいるという。
拡張機能の概要と判明した被害規模
問題が指摘された拡張機能は、HISHIMIRO(jeetbot.cc)名義で公開されている「Twitch Enhanced Viewer | JeetBot」だ。各公式ストアにおいて、Chrome版(識別子:pnhhdhhcadcjfckjhpmjneldiegbojfb)は約3万人のユーザーを抱え2025年6月26日に公開、Firefox版(識別子:twitchenhancedviewer@example.com)は604人のユーザー向けに2025年7月7日に公開されていた。
ストア上の説明文では、配信者や視聴者向けの利便性向上ツールと位置づけられ、地域制限のある環境でも1080pの高画質配信を視聴できる機能や、広告なしの視聴体験を提供するとアピールされていた。しかし実際には、これらの機能を提供する処理の裏で、利用者の認証情報を外部へ送信するコードが組み込まれていた。
送信されていたのは、TwitchアカウントのOAuth(外部サービスにパスワードを渡さずに権限を委譲する認証の仕組み)トークンである。このトークンが悪用された場合、チャットへのメッセージ投稿や、ウィスパー(Whisper:Twitch内のダイレクトメッセージ機能)の送受信、アカウント設定の閲覧や変更などが第三者に実行される恐れがある。
認証情報が外部プロキシへ送信される仕組み
Socketのセキュリティ研究者であるクシュ・パンディア(Kush Pandya)氏の分析によると、この拡張機能はTwitchの配信プレイリスト取得先である「usher.ttvnw[.]net」へのリクエストを、開発元が運用するプロキシサーバー(端末と接続先の間を中継するサーバー)を経由させる設計となっていた。
その際、現行バージョン(v85.x系列)では、拡張機能がブラウザ内から取得したユーザーのTwitch OAuthトークンを、ネットワーク層のリダイレクト時に「&auth=」というクエリパラメータとしてURL末尾に付加して送信していた。URLのクエリ文字列として平文(暗号化されていない状態)で渡されるため、プロキシサーバー側のリクエストログに認証トークンがそのまま記録される状態となっていたという。
また、過去のバージョン(2026年1月時点のv4.8など、v4.x系列)ではさらに別の挙動が確認されており、開発元のホスト上に用意された専用エンドポイント「set-token」へトークンをPOST送信していたほか、バックアップ先としてdeno.devやdeno.netを利用する仕組みも存在していたと報告されている。
ロシア語配信者のチャンネルのみを除外するコード
パンディア氏の解析により、このトークン転送処理には特定の例外が設定されていたことも明らかになった。拡張機能のソースコード内には10件の特定Twitchチャンネルからなるホワイトリスト(除外リスト)が直接記述されており、これらのチャンネルを視聴しているセッションに限っては、トークンの外部送信処理が行われないようになっていた。
除外対象となっていたのは、akyuliych(フォロワー数110万人)、pch3lk1n(58万人)、fasoollka(36.1万人)、lagoda1337(22.5万人)、forzorezor(17.7万人)、flamie(13.2万人)、lagoda(7.73万人)、dosia(29人)、almazer(4人)、fander(2人)といった、主にロシア語圏で活動するストリーマーのチャンネルである。リストに含まれる10チャンネル以外の配信を視聴した場合、例外なくユーザーの認証トークンがプロキシサーバーへと転送されていた。
開発元の対応とトークン失効に関する注意点
JeetBotは、TwitchやKick、VK Liveといった配信プラットフォーム向けに音声合成や自動翻訳などを提供する商用ボットサービスとして運営されており、2万6,000人以上のアクティブ配信者が利用し、10億件以上のメッセージを処理してきた実績を掲げている。サイト上の情報によると、運営者はキプロスを拠点とする開発者のアレクサンドル・ポポフ(Aleksandr Popov)氏で、自身のSNS上では個人プロジェクトと説明されていた。
本件についてポポフ氏はThe Hacker Newsの取材に対し、トークンが外部送信されていた事象は「見落とし(oversight)」によるものであり、最新の拡張機能で問題を修正したと回答している。
JeetBotの公式ドキュメント上でも案内が掲載されており、Firefox向けにはプレイリスト取得時にOAuthトークンをプロキシへ送信しない仕様に変更したバージョン85.8.7が公開された。Chrome向けにも同様の修正版が提出され、審査待ちの状態だという。
ただしドキュメントでは、拡張機能をアップデートまたは無効化・削除したとしても、過去にプロキシサーバーへ送信されてしまったトークン自体が無効化(失効)されるわけではないと警告している。旧バージョンを使用し続けている場合は更新されるまでトークンの送信が継続されるため、修正版への早急なアップデートや一時的な拡張機能の無効化が呼びかけられている。