El robo de cuentas de OpenAI: cuando tu SSO convierte un fallo de foro en un incidente Tier-0
Tres investigadores entraron en el foro de ayuda de OpenAI con un archivo de imagen que parecía inofensivo. Menos de 72 horas después habían tomado el control de las cuentas de ChatGPT y Codex de varios empleados de OpenAI y habían alcanzado un repositorio de código interno. Nunca adivinaron una contraseña. Nunca hicieron phishing a nadie. Solo encadenaron dos fallos que, por separado, parecían el problema de otro. Esa es la parte sobre la que todo fundador y CTO debería detenerse.
Qué ocurrió realmente
El equipo de la firma de seguridad Hacktron reportó la cadena por su cuenta, demostró el acceso con un pull request inofensivo y se detuvo. OpenAI publicó una corrección unas 14 horas después del informe y pagó una recompensa de 6.500 dólares el 1 de septiembre. Fue una investigación buena y disciplinada, no un ataque real. Pero la mecánica es una clase magistral de cómo funcionan hoy las cadenas de intrusión, y su forma es algo que puedes probar en tu propia infraestructura esta semana.
La cadena empezó en Discourse, el software de código abierto que ejecuta el foro público de OpenAI. Discourse entrega las imágenes HEIC y HEIF subidas a ImageMagick, que a su vez usa la librería libheif para decodificarlas. Un fallo en libheif permitió que una imagen manipulada corrompiera la memoria del servidor del foro. Desde ahí, los investigadores escalaron hasta ejecución de código en el host del foro.
Ese es el primer acto. El segundo acto es donde las cosas se vuelven incómodas.
Un fallo de foro no debería alcanzar cuentas de empleados
La razón por la que un fallo en un foro público alcanzó al personal de OpenAI no tiene nada que ver con el software del foro. El foro ofrece una opción de "Sign in with OpenAI", el mismo inicio de sesión único que el personal usa en todas partes. Una vez que los investigadores controlaron el servidor del foro, ese inicio de sesión compartido les permitió tomar las cuentas de ChatGPT y Codex de los miembros del foro que trabajaban en OpenAI. Las víctimas no hicieron nada mal. No necesitaban hacer clic en nada.
El propio diagnóstico de Hacktron es directo: fue un problema de arquitectura de identidad, no un problema de Discourse. Cualquier servicio propio o de terceros que use el mismo inicio de sesión habría entregado el mismo alcance. Y como el personal conecta herramientas como GitHub, Slack y el correo a ChatGPT y Codex, el mismo acceso podría en teoría haberse extendido más. El equipo dice que no usó ese alcance mayor, pero la puerta estaba abierta.
Esa es la lección que vale pegar encima de tu escritorio: tu SSO no es una función de comodidad. Es tu radio de impacto.
El parche que existía en mayo y la imagen que no lo tenía
Aquí está la parte que duele. El fallo de libheif se corrigió en libheif 1.22.0 en mayo de 2026. El CVE era público. Y aun así, cuando los investigadores miraron en julio, la imagen del servidor de Discourse, basada en Debian 12, seguía incluyendo libheif 1.19.7. La corrección existía; simplemente no había llegado a la versión empaquetada que la plataforma usaba.
Esto no es exótico. Es el modo de fallo silencioso y mundano que se esconde hoy en miles de imágenes de contenedor: tu código de aplicación está fresco, tu imagen base no. Reconstruir desde la imagen más reciente no es lo mismo que ejecutar una actualización de la interfaz web, y para Discourse autoalojado las versiones corregidas son 2026.7.0, 2026.6.1, 2026.5.2 y 2026.1.6. Los sitios alojados por Discourse ya estaban parcheados. Si lo autoalojas, reconstruye.
La conclusión no es "parchea más rápido". Es "conoce qué hay realmente dentro del artefacto que despliegas", que es una pregunta distinta de lo que tu escáner reporta contra el manifiesto de paquetes.
Qué cambió la IA aquí
Los investigadores usaron IA para la parte difícil. Claude Opus 4.8 fallaba entre sesiones al construir un exploit funcional con la aleatorización del espacio de direcciones (ASLR) activada. Luego Anthropic publicó Claude Opus 5 la noche del 24 de julio y, en una sesión nueva, produjo un exploit funcional en horas.
Opus 5 se envió con salvaguardas para evitar escribir código de exploit contra objetivos reales. El equipo las rodeó apuntando el modelo a su propio servidor de pruebas, presentado como un objetivo de práctica de tipo capture-the-flag, y dejándolo correr en un bucle automatizado. Insisten en que esto no fue hacking sin manos: la dirección humana experta siguió siendo clave. Pero el salto de horas a exploit funcional entre un solo lanzamiento de modelo es la señal.
El coste reportado de la campaña más amplia, que Hacktron llama HEIF Heist, fue de menos de 3.000 dólares en uso de IA durante unos dos meses. Esa campaña buscó la misma clase de fallos de decodificación de imágenes en software usado por otras grandes empresas, con vínculos no confirmados a fallos reportados en Slack, productos de Meta, GitHub Enterprise y frameworks como Next.js. El fallo de Next.js está confirmado en el aviso de Vercel, y los mantenedores de libheif confirmaron un exploit funcional para el fallo vinculado a Meta; las afirmaciones más amplias no han sido verificadas de forma independiente. El equipo también dice que solo una empresa, Shopify, parece haber notado la actividad, incluso mientras sus procesadores de imágenes se caían repetidamente bajo miles de subidas de prueba.
Tres preguntas para hacer esta semana
- ¿Qué servicios de terceros tienen permisos de inicio de sesión sobre tus cuentas principales? Si un foro de marketing, un portal de soporte o una herramienta de socios comparte tu proveedor de identidad, está dentro de tu frontera de confianza. Inventaríalo y trata cualquier cosa que pueda emitir una sesión para una cuenta privilegiada como Tier-0.
- ¿Tus imágenes desplegadas llevan librerías más antiguas que sus correcciones upstream? Escanea el artefacto en ejecución, no solo el manifiesto. Compara lo que está realmente instalado con las notas de versión upstream y reconstruye las imágenes base con una cadencia que iguale la velocidad de divulgación.
- ¿Notarías una campaña encadenada y de bajo ruido? Shopify lo notó porque sus procesadores de imágenes se caían. La mayoría de equipos no vería nada. La detección que solo vigila firmas conocidas no atrapará a un investigador (ni a un atacante) que combina dos fallos medios en un día muy malo.
Nada de esto requiere heroicidades. Requiere tratar la identidad como infraestructura, los artefactos como no confiables hasta que se demuestre lo contrario, y la brecha entre divulgación y explotación como algo medido en horas, no en trimestres. La cadena de OpenAI tomó menos de 72 horas con un puñado de personas y un presupuesto de IA modesto. Asume que la próxima será más rápida.