自分のIDさえあればFIFAワールドカップ全体をRickrollできた可能性
(bobdahacker.com)- 公開されている FIFA Agent Platform に登録するだけで、FIFAの Microsoft Entra テナントに入り、2026 FIFA World Cup 運営用の Football Data Platform や放送ストリーミング管理機能にまでアクセスできた
- 原因は、JWT の
NO_ROLES状態をフロントエンドだけで確認し、バックエンド API がロールを強制していなかった クライアント側権限チェック にあった - 露出していた Streaming Management パネルには、試合ごとの5つのカメラフィードの RTMP ingest URL、プレビュー manifest、出力 URL、ストリームキーがあり、VLC でライブプレビュー映像を再生できた
- アクセス範囲は閲覧にとどまらず、試合ストリームの開始・停止・予約、ライブ統計・キックオフ時刻・スコア・戦術ラインナップなど一部の 書き込み操作 まで含まれており、Commentator Information System と開発用 Azure Function App も開かれていた
- FIFA は直接応答しなかったが、通報の翌日にはサーバーが
403を返すよう修正され、研究者はsecurity.txt、脆弱性開示ポリシー、バグバウンティ、サーバー側権限チェックの導入を求めた
公開 Agent Platform への登録が内部アクセスにつながる
- FIFA Agent Platform はサッカーエージェントのライセンス登録用公開ポータルで、ID提出とメール認証で登録できる
- 登録完了後、アカウントは FIFA の Microsoft Entra テナントに追加され、このテナントが FIFA 内部プラットフォーム全体で使われていた
- 研究者は ID 写真の照明の問題で2回失敗した後、3回目の試行で登録に成功した
- その後
fdp.fifa.orgにアクセスすると、Football Data Platform は認証を通したうえでロールがないという画面を表示した- 画面には、アカウントに「FIFA Football Data Platform role」がないというアクセス拒否メッセージが表示された
- 実際の検査は Angular アプリの クライアント側レンダリング にとどまり、バックエンド API はリクエストデータを返していた
Streaming Management パネルの露出
- クライアント側ガードを回避すると、FIFA World Cup 2026 の 運用用 Streaming Management パネル にアクセスできた
- パネルにはすべての試合とカメラアングル、RTMP ingest URL、ストリームキーが表示されていた
- 各試合には5つのカメラフィードがあった
PGMTacticalCamera1High Behind LeftHigh Behind Right
- 各フィードには次の情報が含まれていた
- カメラが映像を送る RTMP ingest URL
- フィードを視聴できる preview manifest
- 放送パートナーに渡される HLS manifest である output URL
- RTMP ingest URL の末尾にある UUID がストリームキーで、同じ試合の5つのカメラアングルで1つのキーが共有されていた
- ストリーミング基盤は FIFA のストリーミング技術パートナー MediaKind にホストされており、米国・メキシコ・カナダの競技場からのライブカメラフィードを受け取る運用エンドポイントだった
ライブフィード確認とストリーム制御の可能性
- 研究者が preview manifest を VLC に貼り付けると、東京の PC で進行中の試合の ライブ tactical camera feed が再生された
- 確認直後にフィードは閉じたが、プレビュー URL が進行中の試合でライブ映像を提供していることは確認された
- Streaming Management パネルは閲覧だけでなく、start、stop、schedule などの制御機能も提供していた
- 研究者は制御ボタンを押さなかったが、すべての試合とすべてのカメラアングルに対する制御機能がパネル上に見えていた
- RTMP ingest URL は、競技場のカメラから MediaKind と放送パートナーへつながる入力経路だった
- 流れは カメラ → RTMP ingest → MediaKind → 放送パートナー → TV となる
- 攻撃者がストリームキーとともに RTMP エンドポイントへ映像をプッシュすれば、カメラフィードを差し替えられた可能性がある
PGMはメイン放送出力であり、これを差し替えれば FIFA フィードを受け取るテレビネットワークに攻撃者の映像が表示され得た
- 研究者は、いかなる RTMP エンドポイントにも映像をプッシュしていないと明記している
Football Data Platform の他機能も露出
NO_ROLESアカウントは Streaming Management 以外にも、Football Data Platform の複数の領域へアクセスできた- Competitions
- Matches
- Teams
- Tools
- Exchange Platform
- Analysis Dashboard
- Commentator Information System
- FIFA AI Pro
- Admin
- ライブ試合ダッシュボードには、組み込みビデオプレーヤー、リアルタイムイベントタイムライン、試合役員データが含まれていた
- 例として Côte d'Ivoire vs Ecuador の試合がライブ状態で表示され、イエローカードのタイムラインと match officials 情報が一緒に見えていた
- Advanced Analytics には、live possession control、attempt creation breakdowns、ball recovery timing、distance covered、FIFA AI Pro 統合が含まれていた
試合管理の書き込み操作と放送データへの影響
fdp.fifa.orgの Management タブには 書き込み操作 があり、バックエンドはNO_ROLESアカウントからのリクエストを受け入れていた- 「Update Live Stats」画面には rich text editor、試合時間、試合スコアのフィールド、
Edit and Publishボタンがあった - アクセス可能な管理項目は次のとおりだった
- Attendance
- Possession
- Post Match Statistics
- Team Registration Statistics
- Analysis Finished
- Score and Statistics
- Adjust Kick-off Moment
- Performance Data
- Send Tactical Lineup
- Event Ingress Details
- 攻撃者は次の操作が可能だった
- 放送システムへ渡される editorial commentary notes の修正と公開
- 公式キックオフ時刻の調整
- tactical lineup data の送信
- スコアと試合統計の変更
- これらのデータは Commentator Information System に入り、ライブ TV に表示されると整理されている
Commentator Information System へのアクセス
cis.fifa.orgにもNO_ROLESアカウントでアクセスできた- このシステムは、ライブ試合中に放送解説者が使う リアルタイムダッシュボード だった
- FIFA World Cup 2026 ダッシュボードには、ライブスコア、予定試合、結果が表示されていた
- Côte d'Ivoire vs Ecuador 戦の75分時点の画面には、戦術ビュー、選手位置、フォーメーション、ライブ統計、交代タイムライン、選手団データが含まれていた
- アカウントからは解説者向けの editorial note、pre-match stats kit、talking point も見られた
開発環境の Azure Function App も露出
- 研究者は
xxxxxxxxx-spreadsheets-api.azurewebsites.net形式の Azure Function App も発見した - この API は、FIFA 内部ファイル23件のメタデータと Azure Blob Storage への直接ダウンロード URL を返していた
- 応答には
00_TransferCount_in_ENGLISH.xlsx、0_pending_transfers_example.xlsx、Debbie.xlsxなどのファイル名が含まれていた - ファイル内容としては、transfer reports、revenue comparisons、board-level representation data、referee and coach statistics が言及されていた
- この API にもロールチェックはなかった
通報の試みと連絡経路
- 研究者はワールドカップ開催中に問題を発見したが、FIFA にはバグバウンティプログラム、
security.txt、公開されたセキュリティ連絡先がなかったと述べている - 複数の FIFA メールアドレスと社員メールへ一連の通報を送ったが、5件は不達で、残りにも応答はなかった
- LinkedIn で FIFA の Head of Football Technology & Data である Sebastian Runge を見つけ、WhatsApp で連絡したが返答は得られなかった
- FIFA チューリッヒ本部と FIFA メディアラインにも電話したが、チューリッヒでは日曜の夕方で閉まっていた
- International Broadcast Centre があるダラスの Kay Bailey Hutchison Convention Center にも電話したが、ボイスメールにつながった
- MediaKind のフリーダイヤルにはつながり、担当者は問題を即座に理解したうえで、ストリームキーを含む詳細をメールで送ってほしいと求めた
- HBS にも電話したが、対応可能な人がいないという返答の後に通話は終了し、再度の連絡はつながらなかった
- HBS の親会社 Infront Sports & Media にも電話したが、つながらなかった
- 研究者は、CISA が FIFA World Cup 2026 の放送システムを含むサイバーセキュリティの連邦リードであることを確認し、24時間365日運用センターに連絡した
- CISA は電話に応じ、詳細をメールで送るよう求めた
- 既存のサイバーセキュリティ業務で知っていた FBI の連絡先にも Signal で連絡し、FBI 側は連絡網があり、適切にパッケージ化する必要があると応答した
修正後も残った露出
- 通報から翌日までの間に脆弱性は修正され、研究者の
NO_ROLESアカウントはクライアントのアクセス拒否画面ではなく、サーバーの 403 応答 を受けるようになった - FIFA は、通報確認、謝意、報奨の協議など、いかなる直接の応答も行わなかった
- ただし研究者は、今なお FDP のメール配信リストに残っており、FIFA World Cup 2026 の公式試合文書を受け取っていると述べている
- Start Lists
- Tactical Lineups
- Full Time Match Reports
- 4言語で送付される文書
原因はサーバー側権限強制の欠如
- 根本原因は、サーバー側で権限を強制せず、クライアントでのみ権限を検査する構造 にあった
- FIFA の内部アプリケーションは Microsoft Entra による認証とロールベースアクセス制御を使っていたが、フロントエンドは JWT の role claim を確認してアクセス拒否画面をレンダリングするだけだった
- バックエンド API は、認証済みテナントメンバーであることだけを信頼し、ロールに関係なくデータを提供していた
- 攻撃の流れは次のとおりだった
agents.fifa.orgで公開登録- FIFA Entra テナントにアカウント追加
- FIFA 内部アプリに認証
- クライアントはアクセス拒否を表示
- サーバーはデータを提供
- このパターンは少なくとも次のシステムに影響していた
fdp.fifa.org— Football Data Platformcis.fifa.org— Commentator Information Systemxxxxxxxxx-spreadsheets-api.azurewebsites.net— 開発環境
- 研究者は FIFA に対し、
security.txtファイル、脆弱性開示ポリシー(VDP)、バグバウンティプログラム、サーバー側権限チェックを求めている
1件のコメント
Lobste.rsの反応
FIFAの賄賂管理コンソールにもアクセスできたのではないかと気になる
could'veとは、実際にはやらなかったのが惜しいこの記事のトーンが理解できない
これは純粋に面白い出来事だ。こういう侵害事例のないインターネットを想像すると退屈すぎるし、筆者はむしろ感謝すべきだ
しかも誰も報告しろとは言っていないのに、なぜ報告が難しかったと文句を言うのかも分からない。やりたければやればいいし、嫌ならやらなければいい。そんなに腹が立ったなら悪用すればいいのであって、脆弱性報告用のメールアドレスがないと不満を言う話ではない
おかしいのは、筆者がそういう間抜けな脆弱性そのものではなく、報告しにくくしていたことだけを責めている点だ
根拠としては、タイトル風の大文字表記、短い文にピリオドが多いこと、「That UUID at the end? [...] That's the stream key」のような短い修辞的疑問文、非技術系の文章で
breakthroughという単語を使っている点がある著者のソーシャルメディア上の長文を見ると、こういう書き方はしていない
だからパニックになった可能性が高い。誰にも見られてはいけないものを見てしまい、実際にハッキングが起きたら真っ先に容疑者になっていただろうからだ
こういう巨大組織が基本すらまともに守れていないのは驚きだ
経営陣が、コンピュータ理解が Derek Zoolander レベルのビジネスマンで構成されていそうなイメージだ
脆弱性が存在しうること自体は理解できるが、セキュリティ研究者がそれを報告するためにFBIへ連絡しなければならないなら、もっと大きな構造的問題だ
ハッカーがFIFAワールドカップをリックロールしていたらよかったのにと思う
ラスベガスの Sphere をハッキングしたのと同じくらい伝説的な出来事になっていたはずだ
ポータルとストリーミング用パネルの統合を Copilot に適当に作らせて、そのまま終わらせたように思える
サイトがみんなにとって落ちているのか、それとも自分だけなのか気になる
公開再帰リゾルバで試したところ、サイト自体には問題がないようだった
このドメインは1週間前のコピー時点の dns blocklist のうち rpz/tif.txt に入っていた。たぶん他の形式にも入っていたのだろうが、自分が確認したのは使っているファイルだけだ
どんな指標でドメインがそのリストに入るのかは分からないが、最新リリースにはもう入っていない