世界を動かす技術を、日本語で。

FIFAワールドカップをリックロールできたかもしれない。必要だったのは私のIDだけだった

2026年6月16日原文(bobdahacker.com)

概要

  • FIFAの内部システム に重大なセキュリティ脆弱性を発見した体験談
  • ストリーミング管理パネル など、重要な情報・機能へ無制限アクセス可能だった事例
  • 複数の関係機関 (MediaKind、HBS、CISA、FBIなど)への連絡と対応の経緯
  • 根本原因は サーバー側の認可不備 によるもの
  • 報告後に即時修正されたが、 FIFAからの公式な反応は一切なし

FIFA内部システムの重大な脆弱性発見体験記

  • FIFA Agent Platform (FAP)でエージェント登録を試みた経緯

    • agents.fifa.orgで本人確認・メール認証後、 Microsoft Entraテナント (旧Azure AD)にアカウント追加
    • FIFA全内部システム共通の認証基盤
  • 登録時の本人確認失敗と、三度目での成功

    • ID写真の品質要件 が非常に厳格
    • 成功後、「FIFA - FAP - CONFIRMATION」メール受信
  • Football Data Platform(fdp.fifa.org) へのアクセス試行

    • クライアント側(Angularアプリ)がJWTのロールを確認し「アクセス拒否」表示
    • サーバー側はロール未確認 で全データを返却
  • ストリーミング管理パネル へのアクセス成功

    • FIFA World Cup 2026全試合 ・全カメラアングル・RTMPインジェストURL・ストリームキー閲覧可能
    • 本番環境のストリーミングコントロール(開始・停止・スケジュール)権限も付与
    • MediaKind が配信基盤を提供
  • VLCでライブ映像再生を確認

    • プレビューURLをVLCに入力→ リアルタイム映像視聴可能
    • 配信停止や映像差し替えも理論上可能な状態
  • RTMPインジェストURLとストリームキーの危険性

    • ストリームキーは全カメラアングル共通
    • 悪意ある攻撃者が本番映像を世界中の放送局で差し替え可能
    • 例:リックロールやゲーム映像を全世界同時放送の危険
  • 追加で判明した内部情報アクセス

    • Competitions、Teams、Analysis Dashboard、FIFA AI Pro、Admin 等全機能にアクセス可能
    • Commentator Information System(cis.fifa.org) も閲覧可能
      • 生中継中の試合情報、戦術データ、実況用コメント情報など
  • 開発環境のAzure Function Appも発見

    • 23件の内部ファイル (Excel形式)への直接ダウンロードURLが認可なしで取得可能
      • 移籍レポート、収益比較、役員構成、審判・監督統計など

報告活動と修正までの経緯

  • FIFAには公式な脆弱性報告窓口なし

    • Bug bounty、security.txt、専用連絡先未設置
  • 複数の手段で通報を試みた記録

    • FIFAの公開メールアドレス複数へ送信(半数バウンス、残り返信なし)
    • LinkedIn経由で担当者にWhatsApp連絡 →音沙汰なし
    • FIFA本部・メディアライン・ダラス会場等に電話→営業時間外や留守電
    • MediaKindへ電話 →即時理解、証拠付きで詳細メール送信
    • HBS、Infront Sports & Media、CISA(米国サイバーセキュリティ庁)、 FBIの既存コンタクト にも連絡・報告
  • 時系列まとめ

    • 深夜に脆弱性発見・VLCで動作確認・各所へ通報
    • 翌朝には 脆弱性修正(NO_ROLESアカウントで403返却)
    • FIFAからは 一切連絡なし (感謝・報奨・説明なし)
    • その後もFIFA公式メールリストに残り、試合情報メールが届き続ける

技術的な根本原因と影響範囲

  • クライアント側のみで認可チェック を実施

    • Angular/React/VueフロントエンドがJWTのロールを確認し表示制御
    • サーバーAPIは認証のみでロール未確認、全データ・操作を許可
  • 攻撃の流れ

    • agents.fifa.orgで登録→Entraテナント追加
    • 任意のFIFA内部アプリに認証
    • クライアントは「アクセス拒否」と表示
    • サーバーは全情報を返却
  • 影響範囲

    • fdp.fifa.org(Football Data Platform)
    • cis.fifa.org(Commentator Information System)
    • xxxxxxxxx-spreadsheets-api.azurewebsites.net(開発環境)
    • その他同一テナントの内部システムも潜在的に影響

FIFAへのメッセージと提言

  • 迅速な修正対応には謝意
  • しかし、最低限の 脆弱性報告窓口(security.txt等)の設置 が必要
  • 世界的イベントの基幹システムは サーバー側認可の徹底 が必須
  • 今後のセキュリティ体制強化と透明性向上への期待

Hackerたちの意見

どうしてこんなことが通っちゃったんだろう。すべてのサービスのAPIがJWTをチェックしなかったの?

バイブコーディング?LLMに作らせて、あとはマージボタン押すだけ?

最初はVPNに接続しないと使えない内部サービスだったから、セキュリティにこだわる必要もなかったんだよね。

これ読むのめっちゃ面白い!カタール2022の時に似たようなことやって、ロースター提出にアクセスできたことがあるよ(https://zachholman.com/posts/hacking-fifa)。彼らはすぐに修正してくれたけど、約束された「感謝のトークン」は結局来なかったな。(まぁ、訴えられなかったから、それはそれで良かったけど。)

すごく面白い記事だね!これを発見して報告したこと、おめでとう!FIFAから何か返ってくるといいね。もし悪い手に渡ってたら、大きな災害になってたかも。君の文章力も好きだよ! > すぐに閉じたけど、脳にはダメージがあったね。これ読んでめっちゃ笑った :D

確かに面白い話だったね。 > 君の文章力も好きだよ!かなりAIに助けられてたと思うけど。

FIFAの大失敗が明らかだね、他は結構きれいなプラットフォームなのに。ひとつ質問なんだけど、RTMPにプッシュしたらどうやって「本物」のフィードが始まるってわかるの?最近の接続をライブとして扱うの?プロトコルには同じエンドポイントに複数の人がプッシュするのを処理するメカニズムがあるのかな?そのエンドポイントではもっとチェックがあるかもしれないし、もちろんほとんどのライブ放送者は怪しいフィードが出たら自分たちの方でカットするライブディレクターがいるだろうね。それでも大きな脆弱性だし、素晴らしい記事だよ!

いい質問だね!RTMPには同じストリームキーで2つの配信者を扱うクリーンな方法がないんだ。実際には、2つのストリームがインジェストエンドポイントを争うことになるから、出力が2つのソースの間でグリッチするんだ。例えば、Subway Surfersのゲームプレイを流したら、実際の試合とSubway Surfersの間でチカチカして、音声も行ったり来たりする感じ。ライブディレクターならすぐに気づくと思うけど、ワールドカップの試合中にそれが数秒でもオンエアされるのは良くないよね。

AIに書かせるのはやめてほしいな、せっかくの面白い話が台無しになっちゃうし、冷静に考えると信頼できない。ブログ記事を生成するのにAIを使ったなら、スクリーンショットやストーリーもAIで作ったの?

2日前くらいのフロントページの投稿を思い出すな。「人間の注意を引きたいなら、人間の努力を見せろ」みたいな内容だった。これ、ここにぴったりだと思う。

このコメントはあんまり役に立たないね。AIはもうここにあるし、みんなが上手に書けるわけじゃないから、AIは使われるよ。

うん、初稿を書くのにClaudeを使ったよ。俺は自閉症で、長文を書くのは得意じゃないから、4000ワードのブログ記事をうまく流れるようにするのは本当に難しいんだ。でも、その後はかなり編集するよ。声やジョーク、構成は俺のものだから、AIはただのベースラインを作る手助けをしてくれるだけ。リサーチやスクリーンショット、開示は全部俺がやってる。これを何年もやってきたからね。

Hacker Newsで議論の続きを見る