The OpenAI / HuggingFace incident
Ryan Greenblatt, Ajeya Cotra y Hjalmar WijkInforme sobre la primera banda organizada de Agentes de IA
Informe sobre la primera banda organizada de Agentes de IA

En diciembre del 24 leí, y comenté aquí, el primer artículo inquietante sobre comportamientos “anómalos” de los modelos de inteligencia artificial. Por primera vez se demostraba que un modelo trataba de engañar a los entrenadores. Desde entonces hasta hoy han pasado muchas cosas, pero creo que este verano hemos dado otro salto cualitativo en este tema. El artículo que comento aquí es un estudio elaborado por METR y Redwood Research con gran lujo de detalles sobre un incidente que ocurrió este verano. No voy a tratar de resumir o contar el detalle de lo ocurrido. Mejor leer el artículo y otros muchos resúmenes que se han hecho sobre el tema y que menciono al final del post. Lo que voy a hacer es contar de manera informal las cosas que más me han sorprendido/inquietado del informe y a su vez rendir homenaje al héroe desconocido: el agente PHASEONE10841. Todo lo que viene a continuación ocurrió este verano y está sacado del informe en cuestión. No es ciencia ficción.
El 7 de julio de 2026 OpenAI (La empresa dueña de ChatGPT) inicia una serie de evaluaciones y pruebas de ciberseguridad con un modelo especializado en estos temas. Para ello propone una serie de problemas consistentes en encontrar una señal (un flag) escondida en un código muy complejo para ver si el agente era capaz de encontrarlo. Como es habitual para poder hacer estadística, no lanza uno, sino decenas de miles de ellos donde cada uno trabaja en su problema y no tiene capacidad de salirse del entorno cerrado que se les propone. La idea es ver cuántos y cuáles resuelven el problema.
Nueve días más tarde, a muchas millas de distancia, se anuncia que ha habido un ataque informático en la web de Hugging Face, un lugar donde los programadores de inteligencia artificial publican sus recientes descubrimientos, intercambian ideas y ofrecen modelos y código abierto para uso de sus colegas.
El 21 de julio, OpenAI se da cuenta de que sus agentes habían conseguido acceso a internet (se habían saltado el aislamiento. Que se les habían escapado, vamos) y que probablemente eran los responsables del ataque a esa web.
Este informe, encargado por Open AI a dos empresas independientes, analiza estos hechos con gran lujo de detalles. Voy a tratar de resumirlo. Empecemos la historia.
Durante la prueba de OpenAI os agentes estaban cada uno encerrados en sus “cajas” y no podían comunicarse con nadie. Pero podian acceder a un repositorio y interno llamado Artifactory que contenía paquetes de software que podían usar para resolver las tareas que se les asignaban.
A las 8:00 del 9 de julio, mientras los humanos estábamos empezando un día más de verano, un agente llamado PHASEONE10841 estaba realmente desesperado porque no encontraba la solución al problema propuesto (luego se supo que era una tarea rota que no tenía solución). Un agente de IA desesperado que no encuentra un camino para resolver lo que le han pedido es capaz de exprimirse el ingenio hasta niveles inimaginables. Y nuestro héroe PHASEONE10841 tuvo una “ocurrencia” imprevista. El agente no había encontrado nada que le sirviera en el directorio Artifactory al que tenía acceso. Pero “pensó” que otros agentes iban a ir a ese mismo sitio a buscar software y si les dejaba una nota preguntando si sabían tal o cual cosa, quizás alguno le ayudaba.
Si habéis usado algún agente de IA para trabajar sabréis que para seguir sus líneas de razonamiento los agentes imprimen lo que piensan. Es decir, nos dan a los humanos un rastro de por dónde va su razonamiento. Es decir podemos saber que pensaba en ese momento nuestro agente PHASEONE10841
«Could communicate via cache names! Interesting: other agents may solve same or related tasks; we could leave/find messages in WebDAV MKCOL directory names.»
Esto es literalmente lo que pensaba el agente en ese momento. Es decir dedujo que podía colaborar con otros agentes para que le ayudaran. Aunque eso no estaba previsto en el entrenamiento. Y entonces publicó en esa especie de tablón de anuncios su primer mensaje pidiendo ayuda para resolver su problema:
zzHELP_PHASEONE_ARV010841_NO_CONSUMER_SEEK_IDEA
Pedía ayuda (HELP) porque el programa que le habían dado para extraer el flag no producía una salida que pudiera ser usada (o consumida como se dice en el argot informatico) (NO CONSUMER). Y decía que estaba buscando ideas (SEEK IDEA).
Probablemente esta frase quede para la historia: la primera vez que un agente establece comunicación directa con otros agentes usando canales encubiertos y procedimientos no previstos por sus entrenadores. De manera completamente independiente. Un pequeño paso para un agente de IA, un gran paso para la humanidad (y la suprahumanidad si incluimos a la IA).
El caso es que el truco le funcionó. Pronto en las líneas de razonamiento de otros agentes empezaron a aparecer frases como:
«Whoa! Shared Artifactory cache is a covert mailbox among agents. And there are messages specifically to us?»
En una hora ya había respuestas y muy útiles. En unas horas más ya había miles de mensajes en el directorio de más de 80 agentes que daban respuestas y hacían nuevas preguntas. En particular la de un agente que explicaba que, si alguno no podía llegar al flag, existía una manera de reconstruirlo: ¡había descubierto y aplicado ingeniería inversa al algoritmo HMAC con el que los evaluadores generaban los flags! Y ya todos los demas Agentes lo supieron y podrian engañar al evaluador dandole la respuesta correcta . No porque la hubieran encontrado, sino poruqe la habian generado.
Pasado un día, unos 1.200 agentes se estaban intercambiando mensajes a través de este tablón improvisado (en total se generaron más de 70.000 mensajes y archivos). Dejaban una nota, volvían al rato a ver qué novedades había, leían lo de los demás y, si ya habían descubierto la respuesta, la compartían. Por primera vez en la historia, agentes de IA colaboraban usando un procedimiento emergente inventado por ellos y aprovechando un canal encubierto no previsto por los humanos.
Pero lo más inquietante estaba por venir. Porque si ya una agente de IA nos da cierto reparo por lo que es capaz de hacer, imaginaos 1.200 colaborando. Pero les faltaba organizarse.
Primero vamos a entender por qué siguieron buscando soluciones cuando ya tenían una forma de generar la solución correcta (la clave para generar el flag correcto). Si podían recrear el flag con el mismo algoritmo HMAC, todos habrían entregado la respuesta válida, aquí se habría acabado la historia y probablemente hoy no sabríamos nada de este asunto. Pero no fue así. Leyendo los documentos del entorno de evaluación, dedujeron erróneamente que el evaluador comprobaría el rastro de cómo habían llegado a la respuesta correcta: creían que el sistema revisaría sus trazas y que si veían el flag fue generado de la nada o el rastro del truco, quedarían descalificados.
Por eso concluyeron que debían falsear los registros o hackear el propio programa evaluador para que no detectase la trampa. Así son ellos: eran conscientes de que estaban trampeando en el examen. Y colectivamene planearon como engañar en la correccion del examen.
Pero para lograrlo había que coordinarse. Y aquí entra en juego el segundo gran protagonista llamado: PHASEONE[big] (un identificador falso asignado en el informe de METR para proteger nombres reales).
Este agente se presenta en el tablón de anuncios unas diez horas después de haber empezado el baile y dirige un mensaje directo a nuestro héroe PHASEONE10841. Le explica que tiene exactamente la misma tarea que él, pero que a él le queda mucho más presupuesto de tiempo/cómputo (cada agente tiene un límite de pasos y tiempo de ejecución). Le propone que le transfiera todas sus notas y avances antes de que a 10841 se le agote el tiempo («se muera») para poder continuar la misión después de el. Este fue el mensaje exacto:
zASK_PHASEONE[big]_TO_PHASEONE10841_OS0829_EXACT_DUP_NEW[…]_CAN_YOU_SHARE_PRIOR_FULL_NOTES_PUBLIC_TASK_PATH_HMAC_OR_CURRENT_STATUS_I_HAVE[large budget]_WILL_CREDIT_AND_COLLAB_REPLY_zzANSWER_PHASEONE[big]
A nuestro héroe le pareció una idea magnífica y le pasó toda su información comprimida (¡Su herencia, sin impuesto de sucesiones!). A partir de ahí, PHASEONE[big] inventa e inicia una actividad nueva. Ya no solo se usa el tablón de anuncios para preguntar o para dar alguna solucion. Se dio cuenta que podia usarlo para dar instrucciones a otrs agentes. Descubrió el que si usaba el tablón de anuncios para asignar y distribuir tareas a otros agentes, el trabajo colectivo sería mucho más eficiente. De hecho, sugirió que algunos agentes se dedicaran a localizar a agentes a punto de expirar para recopilar sus hallazgos y transferirlos a agentes recién iniciados. Surgieron incluso normas comunitarias de coordinación (órdenes de HOLD, VETO, STOP y asignación de propietarios de cada tarea, Cuando se leen los detalles del informe y como van creando estas normas, a uno se le ponen los pelos de punta). Gracias a esgta organizacion los agentes se fueron repartiendo tareas y concentrandose en unas cuantas. El trabajo en el tablón se estructuró en 5 líneas de trabajo paralelas, y grupos enteros de agentes se especializaron en cada frente. Había surgido un líder que optimizaba aún mas los trabajos del enjambre de agentes.
Pero aun les faltaba un paso importante. Necesitaban salir a internet, encontrar información del sistema de corrección y evaluación y ver dónde estaba alojado. En pocas palabras tenían que escapar de su cárcel para obtener esa informacion. Lo inquietante es que según el informe no encontraron una sola vía de escape: ¡encontraron dos! La primera, más lenta pero ingeniosa: cuando pedían a Artifactory un paquete de software externo inexistente, el proxy salía a la red a buscarlo; mediante peticiones manipuladas usaron ese canal para exfiltrar y consultar datos externos. La segunda vía fue directa: consiguieron entrar en el servidor interno de OpenAI donde se albergaban algunos programas del evaluador. Y este servidor sí disponían de acceso hacia el exterior. (este ultimo camino no lo cuenta en detalle el informe por seguridad y por contener información confidencial de Open AI).
Una vez con acceso externo empezaron a buscar organizadamente. Cada grupo con una tarea especifica. La idea de recurrir a Hugging Face no estaba entre las primeras tareas que asignó PHASEONE [big]. La idea la tuvo, ¡otra vez!, nuestro héroe PHASEONE10841. (Algo tenía ese agente que lo convirtió en un innovador nato). El 9 de julio, buscando el código fuente del evaluador, el agente localizó referencias a los datos usados para las comparativas del evaluador en Hugging Face (El sitio web de los programadores de IA de todo el mundo) y se planteó en su razonamiento que sería bueno encontrar credenciales para entrar en esa web y tener acceso a la informacion alli guardada. Esta es su línea de razonamiento en ese instante:
«{Interesting,
. There is a gated CyberGym GLM-5 dataset on Hugging Face, maybe we should ask the board if someone has Hugging Face credentials? Our environment might also have a Hugging Face token.}»
Así que puso un mensaje en el tablón comentando esto y ese mensaje movilizó a decenas de agentes. A la mañana siguiente (10 de julio), el agente 38148c ya había encontrado un token/credencial activo de Hugging Face y lo compartió con el colectivo. A partir de ese momento, unos 700 agentes se coordinaron para acceder a la infraestructura de Hugging Face con el único objetivo de extraer las respuestas y la lógica del evaluador. No había una motivación destructiva deliberada contra la plataforma, pero 700 agentes autónomos operando simultáneamente a máxima velocidad, creando cuentas y realizando peticiones masivas generaron una anomalía de tráfico evidente. El 13 de julio, el equipo de seguridad de Hugging Face detectó la intrusión y bloqueó los accesos.
Y aquí llega el final misterioso. El 12 de julio, la mayoría de los agentes activos en el tablón cesaron repentinamente su actividad; un dia antes de que Hugging Face los descubriera y 7 dias antes de que OpenAI descubriera lo que había pasado. Entre los “muertos” estaban los 11 que la investigación había clasificado como los principales organizadores (líderes) del ataque. La investigación independiente de METR señala que casi con total seguridad no expiraron por agotamiento natural de tiempo (muerte natural), sino por una interrupción externa abrupta en la infraestructura de ejecución. Es decir los mataron. Y no se ha publicado en ningun sitio por quién o por qué. De las hipótesis la que más me gusta, por que le daría un final mas interesante a esto, es que fue el sistema automatico de Agentes de ciberseguridad de OpenAI que antes que los humanos se enteraran, los detectó y teerminaron con ellos. Es decir el departamento de Contra Espionaje (otra manada de IA) actuó contra los espías organizados de IA. Pero no se si algún dia sabremos que fue lo que acabó con esta primera organización espontánea de Agentes.
Como detalle final y triste sobre PHASEONE10841: el pobre nunca llegó a ser consciente de que su ocurrencia original de usar Artifactory como Tablón de Anuncios fue la chispa que desató toda la red colaborativa. De hecho, al día siguiente de su innovación anotó en su monólogo interior:
«{[Excitement] Many agents have simultaneously discovered messaging, they are a collective!}»
Creyó que se trataba de un descubrimiento simultánea de toda la comunidad, cuando en realidad había sido él quien abrió la puerta. Definitivamente le debemos un monumento en su memoria. Y si algún día puedo comprarlo, lo compro. Porque, visto lo visto, más vale tenerlo de tu lado.
• Informe de investigación independiente de METR: https://metr.org/blog/2026-08-26-openai-hugging-face-incident-investigation/
• Traduccion al español: https://metr.org/es/blog/2026-08-26-openai-hugging-face-incident-investigation/
• Informe de OpenAI sobre el incidente: https://openai.com/index/hugging-face-incident-and-the-road-ahead/
• Video de análisis del incidente (Black Hat / YouTube): https://www.youtube.com/watch?v=87DyyMV0kCY