Uma pesquisadora de segurança identificou uma falha crítica de controle de acesso na infraestrutura digital da FIFA que permitia acessar o painel de gestão de transmissões da Copa do Mundo de 2026, visualizar câmeras ao vivo de todos os estádios e obter as chaves de stream RTMP de cada partida. A vulnerabilidade, classificada como broken access control (OWASP A01:2021), decorria de uma verificação de autorização exclusivamente no frontend — o backend servia dados a qualquer usuário autenticado no tenant da FIFA, independentemente de permissões.
A pesquisadora, que atende pelo pseudônimo BobDaHacker, publicou os detalhes técnicos em 16 de junho de 2026 em seu blog. O caso foi reportado pelo jornal O Globo em 18 de junho e ganhou repercussão internacional após a divulgação de um vídeo explicativo no canal SafeSrc em 22 de junho.
Cadeia de ataque explicada
O acesso começou de forma trivial: a pesquisadora se cadastrou como agente de jogadores na FIFA Agent Platform (agents.fifa.org), um portal público que exige apenas documento de identidade e verificação de e-mail. Ao concluir o registro, sua conta foi adicionada ao tenant do Microsoft Entra (antigo Azure AD) da FIFA — o mesmo que autentica todas as plataformas internas da entidade.
Ao tentar acessar a Football Data Platform (fdp.fifa.org), o aplicativo Angular verificou seu token JWT, identificou a ausência de roles e exibiu uma mensagem de “access denied”. O problema: essa verificação existia apenas no código JavaScript executado no navegador. As APIs do backend não validavam a assinatura do JWT nem conferiam as permissões do usuário — bastava estar autenticado no tenant para receber qualquer dado solicitado.
O que estava exposto
Ao contornar os guardas do lado do cliente — trivial em aplicações Angular, React ou Vue, já que o JavaScript roda no navegador do usuário e pode ser manipulado com as ferramentas de desenvolvedor —, a pesquisadora obteve acesso ao painel de Streaming Management em produção. O sistema listava todas as partidas da Copa do Mundo de 2026 com controles completos de transmissão.
Cada partida continha cinco ângulos de câmera (PGM, Tactical, Camera1, High Behind Left, High Behind Right), cada um com:
- URL de ingestão RTMP — o endpoint para onde a câmera do estádio envia o vídeo
- Manifesto de preview — URL para assistir ao feed ao vivo
- URL de saída HLS — o manifesto distribuído para parceiros de transmissão
As chaves de stream RTMP — UUIDs anexados às URLs — eram compartilhadas entre todos os cinco ângulos de câmera de uma mesma partida. Um único atacante com acesso a uma dessas URLs poderia sequestrar todas as câmeras simultaneamente.
A pesquisadora confirmou que os manifests de preview estavam ativos ao abrir um deles no VLC e visualizar uma câmera tática ao vivo de uma partida em andamento.
Impacto potencial era catastrófico
As URLs de ingestão RTMP representam o pipe direto das câmeras dos estádios para a cadeia de distribuição da FIFA: câmera → ingestão RTMP → MediaKind (parceiro de streaming) → parceiros de transmissão → televisão do espectador. Um atacante que publicasse vídeo em um desses endpoints com a chave de stream poderia substituir o feed da câmera por conteúdo arbitrário.
O feed PGM (Program) é a saída principal de transmissão. Substituí-lo significaria que todas as redes de televisão recebendo o sinal da FIFA exibiriam o conteúdo injetado — durante uma partida ao vivo, para bilhões de espectadores.
A falha ecoa outros casos recentes de APIs mal protegidas, como o vazamento de dados corporativos via API do ServiceNow e a falha CVSS 10 no LiteLLM que expôs chaves de IA. O padrão é sempre o mesmo: backend sem verificação adequada de autorização.
Além das transmissões, a conta sem permissões também acessou:
- Commentator Information System (
cis.fifa.org) — dashboard em tempo real usado por comentaristas, com notas editoriais, estatísticas pré-partida e talking points - Match Management — operações de escrita que permitiriam modificar placares, ajustar horário de início e enviar escalações táticas
- Azure Function App exposto — endpoint que retornava URLs de download direto para 23 ficheiros internos da FIFA, incluindo relatórios de transferências
O pesadelo da divulgação responsável
A FIFA não possui programa de bug bounty, arquivo security.txt ou canal público de contato para segurança. A pesquisadora relatou uma sequência de dez tentativas frustradas de comunicação, descritas em detalhe em seu blog.
Entre as tentativas: e-mails para mais de dez endereços da FIFA (cinco retornaram erro), mensagem via WhatsApp para o chefe de tecnologia da entidade, ligações para a sede em Zurique (fechada), para o centro de transmissão em Dallas (caixa postal) e para a Host Broadcast Services (desligaram o telefone).
A comunicação só funcionou quando a pesquisadora contatou a MediaKind, parceiro de streaming da FIFA, que atendeu e encaminhou o relatório. Ela também acionou a CISA (Cybersecurity and Infrastructure Security Agency), órgão federal responsável pela cibersegurança da Copa, e contatos no FBI. A vulnerabilidade foi corrigida no dia seguinte. A FIFA nunca respondeu formalmente.
Causa raiz: autorização só no cliente
A arquitetura da FIFA separa autenticação de autorização de forma incorreta. O Microsoft Entra gerencia identidade — quem é o usuário — mas a verificação de permissões (o que o usuário pode fazer) ficava exclusivamente no frontend Angular. O backend confiava em qualquer membro autenticado do tenant e servia dados sem checar roles.
A cadeia de ataque completa:
- Cadastrar-se em
agents.fifa.orgcom um documento - Ser adicionado ao tenant do Microsoft Entra da FIFA
- Autenticar-se em qualquer aplicação interna da FIFA
- O cliente exibe “access denied” (sem roles)
- O servidor serve todos os dados sem validação
Esse padrão afetou pelo menos três plataformas: fdp.fifa.org, cis.fifa.org e uma Azure Function de desenvolvimento. Outras aplicações no mesmo tenant podem ter o mesmo problema. A correção implementou verificações de role no backend, retornando HTTP 403 para contas sem permissão.
O que desenvolvedores devem aprender
O caso da FIFA ilustra o padrão mais elementar de falha de controle de acesso em aplicações SPA (Single Page Application). Controle de acesso no frontend é cosmético — pode ser contornado por qualquer usuário com acesso às ferramentas de desenvolvedor do navegador (F12). Toda verificação de autorização deve ocorrer no servidor, em cada endpoint de API, validando:
- Se o token JWT está presente e tem assinatura válida
- Se o usuário possui a role necessária para a operação
- Se o usuário tem direito ao recurso específico solicitado
A OWASP classifica broken access control como a vulnerabilidade web mais crítica desde 2021. A FIFA não é o primeiro e não será o último caso — mas o impacto potencial de interromper transmissões da maior evento esportivo do planeta coloca este incidente em categoria própria.