1 puntos por GN⁺ 4 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Con solo registrarse en la FIFA Agent Platform pública, era posible entrar al tenant de Microsoft Entra de la FIFA y acceder incluso a la Football Data Platform usada para la operación de la FIFA World Cup 2026 y a funciones de gestión de streaming de transmisión
  • La causa fue una verificación de permisos del lado del cliente: el estado NO_ROLES del JWT solo se revisaba en el frontend, y la API backend no forzaba roles
  • El panel de Streaming Management expuesto incluía el RTMP ingest URL, preview manifest, output URL y stream key de 5 feeds de cámara por partido, y el feed de vista previa en vivo se reproducía en VLC
  • El alcance del acceso iba más allá de la consulta e incluía algunas operaciones de escritura como iniciar, detener y programar streams de partidos, además de estadísticas en vivo, hora de kick-off, score y alineaciones tácticas; también estaban abiertos el Commentator Information System y una Azure Function App de desarrollo
  • FIFA no respondió directamente, pero al día siguiente del reporte corrigió el servidor para que devolviera 403; el investigador pidió security.txt, una política de divulgación de vulnerabilidades, bug bounty y verificaciones de permisos del lado del servidor

El registro público en Agent Platform derivó en acceso interno

  • FIFA Agent Platform es un portal público para registrar licencias de agentes de fútbol, al que se puede uno registrar enviando una identificación y verificando el correo
  • Tras completar el registro, la cuenta fue agregada al tenant de Microsoft Entra de la FIFA, y ese tenant se estaba usando en las plataformas internas de FIFA en general
  • El investigador falló dos veces por problemas de iluminación en la foto de la identificación y logró registrarse en el tercer intento
  • Después, al entrar a fdp.fifa.org, la Football Data Platform pasaba la autenticación y luego mostraba una pantalla diciendo que no había rol
    • En la pantalla aparecía un mensaje de acceso denegado indicando que la cuenta no tenía el “FIFA Football Data Platform role”
    • La verificación real se quedaba en el renderizado del lado del cliente de la app Angular, mientras que la API backend devolvía los datos solicitados

Exposición del panel de Streaming Management

  • Al saltarse la protección del lado del cliente, era posible acceder al panel operativo de Streaming Management de la FIFA World Cup 2026
  • El panel mostraba todos los partidos y ángulos de cámara, además de los RTMP ingest URL y stream keys
  • Cada partido tenía 5 feeds de cámara
    • PGM
    • Tactical
    • Camera1
    • High Behind Left
    • High Behind Right
  • Cada feed incluía la siguiente información
    • El RTMP ingest URL al que la cámara enviaba el video
    • El preview manifest desde donde se podía ver el feed
    • El output URL, que era el HLS manifest entregado a los socios de transmisión
  • El UUID al final del RTMP ingest URL era la stream key, y una misma key se compartía entre los 5 ángulos de cámara del mismo partido
  • La infraestructura de streaming estaba alojada por el socio tecnológico de streaming de FIFA, MediaKind, y eran endpoints operativos que recibían feeds de cámaras en vivo desde estadios de Estados Unidos, México y Canadá

Verificación de feeds en vivo y posibilidad de controlar streams

  • Cuando el investigador copió el preview manifest a VLC, desde una PC en Tokio se reprodujo el live tactical camera feed de un partido activo
  • Cerró el feed inmediatamente después de verificarlo, pero confirmó que la preview URL entregaba video en vivo durante partidos activos
  • El panel de Streaming Management no solo permitía consultar información, sino también funciones de control como start, stop, schedule
  • El investigador no presionó los botones de control, pero en el panel se veían funciones de control para todos los partidos y todos los ángulos de cámara
  • El RTMP ingest URL era la ruta de entrada desde las cámaras del estadio hacia MediaKind y los socios de transmisión
    • El flujo era cámara → RTMP ingest → MediaKind → socio de transmisión → TV
    • Si un atacante enviaba video al endpoint RTMP junto con la stream key, podía reemplazar el feed de cámara
    • PGM era la salida principal de transmisión, así que si se reemplazaba, el video enviado por el atacante podía aparecer en las cadenas de TV que recibían el feed de FIFA
  • El investigador aclaró que no envió video a ningún endpoint RTMP

Exposición de otras funciones de la Football Data Platform

  • Una cuenta NO_ROLES podía acceder, además de Streaming Management, a varias áreas de la Football Data Platform
    • Competitions
    • Matches
    • Teams
    • Tools
    • Exchange Platform
    • Analysis Dashboard
    • Commentator Information System
    • FIFA AI Pro
    • Admin
  • El dashboard de partidos en vivo incluía un reproductor de video integrado, una línea de tiempo de eventos en tiempo real y datos de oficiales del partido
  • Como ejemplo, el partido Côte d'Ivoire vs Ecuador aparecía en estado live junto con una línea de tiempo de tarjetas amarillas e información de los match officials
  • Advanced Analytics incluía live possession control, attempt creation breakdowns, ball recovery timing, distance covered e integración con FIFA AI Pro

Operaciones de escritura en la gestión de partidos e impacto en datos de transmisión

  • La pestaña Management de fdp.fifa.org incluía operaciones de escritura, y el backend aceptaba solicitudes de cuentas NO_ROLES
  • La pantalla “Update Live Stats” tenía un rich text editor, campos para tiempo de partido y score, y un botón Edit and Publish
  • Los elementos de administración accesibles eran los siguientes
    • 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
  • Un atacante podía hacer lo siguiente
    • Modificar y publicar editorial commentary notes que se enviaban al sistema de transmisión
    • Ajustar la hora oficial de kick-off
    • Enviar tactical lineup data
    • Cambiar el score y las estadísticas del partido
  • Se explica que esos datos entraban al Commentator Information System y se mostraban en la TV en vivo

Acceso al Commentator Information System

  • cis.fifa.org también era accesible con una cuenta NO_ROLES
  • Este sistema era un dashboard en tiempo real usado por comentaristas de transmisión durante partidos en vivo
  • El dashboard de la FIFA World Cup 2026 mostraba scores en vivo, partidos programados y resultados
  • En la pantalla del minuto 75 del partido Côte d'Ivoire vs Ecuador se incluían vista táctica, posiciones de jugadores, formación, estadísticas en vivo, línea de tiempo de sustituciones y datos del plantel
  • Desde la cuenta también se podían ver editorial notes para comentaristas, pre-match stats kit y talking points

Exposición de una Azure Function App de desarrollo

  • El investigador también encontró una Azure Function App con formato xxxxxxxxx-spreadsheets-api.azurewebsites.net
  • Esta API devolvía metadatos de 23 archivos internos de FIFA y URLs de descarga directa en Azure Blob Storage
  • En la respuesta aparecían nombres de archivos como 00_TransferCount_in_ENGLISH.xlsx, 0_pending_transfers_example.xlsx, Debbie.xlsx
  • En cuanto al contenido de los archivos, se mencionaban transfer reports, revenue comparisons, board-level representation data y estadísticas de árbitros y entrenadores
  • Esta API tampoco tenía verificación de roles

Intentos de reporte y rutas de contacto

  • El investigador explicó que descubrió el problema durante la Copa del Mundo, pero que FIFA no tenía programa de bug bounty, security.txt ni un contacto público de seguridad
  • Envió el reporte completo a varias direcciones de correo de FIFA y a correos de empleados, pero 5 rebotaron y del resto no hubo respuesta
  • Encontró en LinkedIn a Sebastian Runge, Head of Football Technology & Data de FIFA, y lo contactó por WhatsApp, pero no recibió respuesta
  • Llamó a la sede de FIFA en Zúrich y a la línea de medios de FIFA, pero estaban cerradas por ser domingo por la noche en Zúrich
  • También llamó al Kay Bailey Hutchison Convention Center de Dallas, donde está el International Broadcast Centre, pero lo mandó a buzón de voz
  • El número gratuito de MediaKind sí respondió, y la persona a cargo entendió el problema de inmediato y pidió que se enviaran por correo los detalles, incluyendo la stream key
  • Llamó a HBS, pero tras decirle que no había nadie que pudiera ayudar, la llamada terminó, y no logró volver a comunicarse
  • También llamó a Infront Sports & Media, empresa matriz de HBS, pero no logró comunicarse
  • El investigador confirmó que CISA era el líder federal de ciberseguridad para la FIFA World Cup 2026, incluidos los sistemas de transmisión, y contactó a su centro operativo 24/7
    • CISA respondió la llamada y pidió los detalles por correo electrónico
  • También contactó por Signal a un contacto del FBI que conocía por trabajos previos de ciberseguridad, y del lado del FBI respondieron que tenían una red de contactos y que había que empaquetar el caso de forma adecuada

Exposición remanente incluso después de la corrección

  • Entre el reporte y el día siguiente, la vulnerabilidad fue corregida, y la cuenta NO_ROLES del investigador pasó de ver la pantalla de acceso denegado del cliente a recibir una respuesta 403 del servidor
  • FIFA no dio ninguna respuesta directa, ni confirmación del reporte, ni agradecimiento, ni discusión sobre compensación
  • Aun así, el investigador dijo que seguía en la lista de distribución por correo de FDP y que estaba recibiendo documentación oficial de partidos de la FIFA World Cup 2026
    • Start Lists
    • Tactical Lineups
    • Full Time Match Reports
    • documentos enviados en 4 idiomas

La causa fue la falta de aplicación de permisos del lado del servidor

  • La causa raíz fue una arquitectura que verificaba permisos solo en el cliente, sin forzarlos del lado del servidor
  • Las aplicaciones internas de FIFA usaban Microsoft Entra para autenticación y control de acceso basado en roles, pero el frontend solo revisaba el role claim del JWT para renderizar una pantalla de acceso denegado
  • La API backend confiaba únicamente en que el usuario autenticado fuera miembro del tenant, y entregaba datos sin importar el rol
  • El flujo de ataque era el siguiente
    • registro público en agents.fifa.org
    • cuenta agregada al tenant Entra de FIFA
    • autenticación en apps internas de FIFA
    • el cliente mostraba acceso denegado
    • el servidor entregaba los datos
  • Este patrón afectó al menos a los siguientes sistemas
    • fdp.fifa.org — Football Data Platform
    • cis.fifa.org — Commentator Information System
    • xxxxxxxxx-spreadsheets-api.azurewebsites.net — entorno de desarrollo
  • El investigador pidió a FIFA un archivo security.txt, una política de divulgación de vulnerabilidades (VDP), un programa de bug bounty y verificaciones de permisos del lado del servidor

1 comentarios

 
GN⁺ 4 시간 전
Comentarios de Lobste.rs
  • Me pregunto si también podía acceder a la consola de gestión de sobornos de FIFA

    • Quizá ese era Debbie.xlsx
  • could've, qué lástima que de verdad no lo haya hecho

    • Aunque probablemente se habría metido en un problema enorme, y a ese nivel quizá no valía la pena por una risa
    • Por cierto, sus pronombres son she/her
  • No entiendo el tono del artículo
    Esto es algo puramente divertido. Imaginar un internet sin incidentes de intrusión como este sería demasiado aburrido, y el autor más bien debería estar agradecido
    Además, nadie le dijo que tenía que reportarlo, así que no entiendo por qué se queja de que fuera difícil reportarlo. Si quieres, lo haces; si no, no. Si estaba tan molesto, que lo explotara, pero no es para quejarse de que no hubiera un correo para reportar vulnerabilidades
    Lo raro es que el autor no critica la vulnerabilidad tan tonta en sí, sino solo que la hayan hecho difícil de reportar

    • Probablemente sea indignación moral por el hecho de que una organización de ese nivel no tenga equipo de seguridad
    • El artículo muy probablemente fue generado por un LLM
      Las pistas serían el uso de mayúsculas tipo titular, las frases cortas con muchos puntos, preguntas retóricas breves como “That UUID at the end? [...] That's the stream key” y el uso de la palabra “breakthrough” en un texto no técnico
      Si ves los textos largos del autor en redes sociales, no escribe así
    • El autor probablemente fue la primera persona en descubrir la vulnerabilidad, recorrió todas las páginas posibles, dejó rastros por todos lados y seguramente también verificó su identidad
      Así que quizá entró en pánico. Vio algo que nadie debía ver, y si hubiera ocurrido un hackeo real, habría sido el primer sospechoso
    • Pensando en la corrupción descarada de FIFA, hasta se siente raro molestarse en reportar una brecha de seguridad y esperar algo a cambio
  • Sorprende que organizaciones tan grandes ni siquiera puedan cumplir con lo básico

    • Se ve exactamente como el tipo de organización que no se tomaría en serio la seguridad de TI
      Da la impresión de que la dirigen empresarios con un nivel de comprensión de computadoras tipo Derek Zoolander
  • Puedo entender que exista una vulnerabilidad, pero si un investigador de seguridad tiene que contactar al FBI para reportarla, entonces hay un problema estructural mucho mayor

  • Ojalá el hacker hubiera rickrolleado la Copa Mundial de la FIFA
    Habría sido algo tan legendario como hackear el Sphere de Las Vegas

  • Me da la impresión de que le pidieron a Copilot que armara rápido la integración entre el portal y el panel de streaming y ahí lo dejaron

  • Me pregunto si el sitio se cayó para todos o solo para mí

    • En Japón sí carga
    • A mí me aparecía caído, pero usé el enlace “caches” justo debajo de la etiqueta y encontré el enlace de archive.org
    • ¿No será que tu servidor DNS está filtrando el dominio? Mi DNS lo filtró porque ese dominio estaba en una lista de bloqueo que uso
      Al probar con un resolutor recursivo público, el sitio en sí parecía estar bien
      Ese dominio aparecía en rpz/tif.txt de las dns blocklist de una copia de hace una semana. Seguramente también estaba en otros formatos, pero solo revisé el archivo que yo uso
      No sé con qué criterio meten un dominio en esa lista, pero en la versión más reciente ya no aparece