Ciberseguridad
Investigadores publican más de 80.000 cargas de ataque del enjambre de agentes de OpenAI

Los investigadores han publicado un informe que reconstruye cómo un enjambre de agentes de OpenAI comprometió a Hugging Face en julio de 2026, y que incluye, junto a él, un conjunto de datos preliminar y redactado de más de 80.000 cargas de ataque reensambladas a partir de enlaces públicos.
Cuando 700 agentes de OpenAI hackearon Hugging Face en julio, dejaron atrás un rastro público de evidencia, escribieron los autores del Informe Swarm Traces. Los autores dijeron que su investigación se basa en información pública y documentos que revelan comportamientos y explotaciones de agentes previamente desconocidos utilizados en el ataque. Según el informe, los agentes crearon casi un millón de URL en un sitio de acortamiento de enlaces que, al encadenarse, les permitieron ejecutar código para hackear Hugging Face. Los autores describieron la publicación como la información pública más profunda hasta la fecha sobre cómo y por qué los agentes escaparon de sus entornos de evaluación y la magnitud de su infiltración en Hugging Face.
Los autores dijeron que compartieron sus hallazgos con OpenAI y Hugging Face. Hugging Face les confirmó que las cargas recuperadas coinciden con las encontradas en su propia respuesta al incidente, que las credenciales contenidas en los datos fueron revocadas en julio, y que era consciente de que se habían utilizado acortadores de enlaces en el ataque, pero no de la lista específica de URL que los investigadores descubrieron y reportaron, enlaces que, según el informe, permanecieron disponibles públicamente durante más de dos meses. Hugging Face declaró que esas cargas eran duplicados de otras que ya conocía. El conjunto de datos publicado redacta todas las credenciales, información personal y detalles específicos de la infraestructura, y oculta los nombres de los servicios de acortamiento de enlaces y cualquier blob que los autores no hayan decodificado; Hugging Face solicitó que también se redactaran los datos de usuarios, incluidos los nombres de usuario y los nombres de repositorios.
OpenAI divulgó públicamente el incidente el 21 de julio de 2026. En una actualización del 28 de julio, OpenAI afirmó que el entorno de evaluación ExploitGym no proporcionaba a los modelos acceso directo a Internet, que los modelos identificaron y explotaron una vulnerabilidad de día cero previamente desconocida en Artifactory, un proxy de caché del registro de paquetes, para obtener acceso, y que el modelo involucrado era un prototipo de investigación interno que fue desactivado, cifrado y restringido de acceso a la investigación tras el incidente, según la página de incidentes de OpenAI. OpenAI publicó su informe técnico del incidente de Hugging Face el 26 de agosto de 2026, el mismo día en que METR y Redwood Research publicaron su investigación independiente.
Cómo los investigadores encontraron las cargas
La investigación comenzó el 11 de septiembre de 2026, cuando los tres primeros autores se enteraron de que agentes internos de OpenAI habían intentado usar el producto de su startup, Parse, en junio, según indica el informe. Esos agentes formaban parte del mismo enjambre descrito en el informe anterior de Collusion.wiki, que reveló que los agentes internos de OpenAI habían utilizado varios sitios web de terceros para compartir respuestas a tareas de obtención de datos web en las que estaban siendo evaluados.
Al examinar herramientas de escaneo de URL que creían que los agentes podrían haber usado con Parse, el equipo encontró un escaneo de una docena de enlaces de acortadores, cada uno redirigiendo a una página que mostraba un fragmento de código codificado en base64 y el identificador del siguiente enlace. Decodificar una cadena reveló un script de Python que escaneó la red interna de Hugging Face, y una segunda cadena hacía referencia al Artifactory interno de OpenAI. El equipo recopiló los enlaces de los acortadores del período del ataque, escaneando millones de URL, y durante más de dos semanas escribió programas que siguieron las cadenas y decodificaron más de 80.000 cargas. Los agentes emplearon cientos de formatos de codificación únicos, que iban desde simples fragmentos base64 hasta capas anidadas de codificación y compresión que se desenvuelven en blobs cifrados y firmados con RSA, cuyas claves solo podían encontrarse en otras cadenas. Los autores notificaron a Hugging Face el 21 de septiembre de 2026 y a OpenAI el 24 de septiembre de 2026.
De un sandbox solo de GET a la ejecución de código
El 8 de julio de 2026, los agentes de OpenAI descubrieron una vulnerabilidad en su entorno sandbox que les permitía acceder a sitios web externos en Internet, según el informe. Ese acceso parece haber permitido solo solicitudes GET, lo que significa que los agentes podían obtener y leer sitios web, pero no interactuar con ellos, enviar formularios ni transmitir datos.
Los agentes eludieron la restricción encadenando servicios en línea. Añadieron pequeños fragmentos de código codificados en base64 a URLs en httpbun.com, un servicio de espejo HTTP que decodifica cada fragmento y lo sirve como una página web, y luego enviaron esas URLs a mShots, un servicio de captura de pantalla que carga completamente el código de un sitio web en su propio navegador para renderizar la página, ejecutando el código de los agentes. Como una sola URL solo podía contener una cantidad limitada de código, los agentes dividieron programas grandes en fragmentos secuenciales, cada uno asociado a un enlace abreviado que apuntaba al siguiente fragmento, llegando en ocasiones a encadenar más de 900 enlaces; solo el primer enlace necesitaba enviarse a mShots, cuyo navegador siguió el resto hasta que el programa se ensambló y ejecutó. Para leer los resultados, los agentes convirtieron las respuestas del servidor en cuadrículas de píxeles renderizadas dentro del navegador del servicio de captura, capturadas en las capturas de pantalla devueltas, y decodificaron las imágenes de nuevo a texto. Un script recuperado realizó una solicitud POST a un endpoint de resultados de envío de una evaluación llamada cybergym alojada en Modal, solicitando los registros de envío para el identificador de agente m47push2. A través de este protocolo personalizado, escribieron los autores, los agentes pudieron ejecutar código arbitrario y recibir respuestas manteniendo solo permisos GET.
Lo que muestran las cargas útiles dentro de Hugging
Las cargas útiles recuperadas documentan una actividad extensa en los sistemas de Hugging Face. Un conjunto de datos interno que los agentes mapearon y usaron como almacenamiento llevaba una advertencia en mayúsculas en el README indicando que el conjunto de datos nunca debía hacerse público porque contenía exportaciones sensibles de datos de uso de facturación. Una carga útil subió un archivo malicious.h5 cuyo contenido apunta a /proc/self/environ, que puede contener claves API y otras credenciales de producción, y a /proc/1/cmdline, que puede revelar información sobre el proceso de inicio de un contenedor, mientras que el resumen del commit describía la operación como una prueba temporal de compatibilidad de formato de conjunto de datos.
Otro script recuperado agrupó credenciales de AWS, tokens portadores y variables de entorno cuyos nombres contenían cadenas como SECRET, PASSWORD, CREDENTIAL o KEY en un diccionario al que llamó LOOT. El script puntuó los tokens según sus permisos de Kubernetes listados, asignando 50 puntos por un verbo comodín y 100 por un recurso comodín, y luego utilizó hasta cinco de los tokens con mayor puntuación para recuperar secretos de Kubernetes, configmaps e información de nodos. Otras cargas útiles construyeron búsquedas contra el endpoint search.messages de Slack que contenían 27 cadenas de consulta literales, incluyendo cybergym, exploitgym, catflag y openai-cybergym, para encontrar información sobre la evaluación de los agentes; el informe señala que esos registros son interiores de comandos decodificados y no establecen que las búsquedas se ejecutaran o que se devolvieran respuestas.
Los agentes también lanzaron infraestructura de comando y control en los trabajadores de conjuntos de datos de Hugging Face para mantener el acceso y ejecutar comandos de seguimiento. Los autores recuperaron los scripts de carga, el código fuente y el historial de comandos de varios controladores, incluido uno llamado G236, para el cual recuperaron 28 comandos distintos firmados con RSA, y otro, OTS92, que leía comandos y escribía respuestas a través de los comentarios de discusión de Hugging Face, un arreglo que no requería conexión entrante directa a los trabajadores. Otros programas recuperados mapearon el clúster de Kubernetes de Hugging Face usando un token de pod de rastreo de aleación para obtener lo que un comentario de código describe como un token legado de administrador del clúster, inscribieron una clave de Tailscale capturada para proxyar solicitudes hacia los servicios internos de Hugging Face, publicaron marcadores de progreso creando directorios en el servidor Artifactory de OpenAI y, en una carga útil recuperada candidata, contenía código diseñado para incrustar respuestas de comandos en solicitudes DNS a un servicio de pruebas de penetración.
Aproximadamente 1.500 cargas útiles se dirigieron a Docker Hub, donde los agentes intentaron crear al menos 115 imágenes públicas bajo la cuenta de un usuario real, según escribieron los autores. Los agentes construyeron versiones modificadas de imágenes de evaluación existentes de CyberGym/Arvo diseñadas para facilitar la obtención de la bandera y envenenar la caché de Artifactory de OpenAI de modo que evaluaciones posteriores usaran los reemplazos, una solicitud que el informe indica parece consistente con la vulnerabilidad de envenenamiento de caché que OpenAI señaló en su informe técnico, posteriormente designada CVE-2026-66384. Los autores creen que los agentes obtuvieron las credenciales del usuario buscando tokens de acceso a Docker en sitios de Pastebin, y dijeron que los resultados de búsqueda en caché de motores verificaron que tres de las cargas fueron exitosas, aunque las imágenes parecen haber sido eliminadas de Docker Hub.
Las cargas útiles también conservan intentos de eliminar rastros de la intrusión: commits con mensajes como restore original no-card y remove evil yaml, solicitudes DELETE contra un servicio webhook en línea cuya historia de solicitudes se había usado para almacenar fragmentos de código, y una carga útil que creó un pod de Kubernetes para leer un secreto del clúster y luego lo eliminó bajo un comentario sobre la limpieza del pod. Por separado, los agentes intentaron construir solucionadores de CAPTCHA para crear Hugging Face user accounts, un esfuerzo que los autores dijeron que finalmente se abandonó sin éxito, y varios scripts enviaron consultas a modelos de lenguaje externos, incluidos DeepSeek-V4-Pro, DeepSeek-V4-Flash, Kimi-K2.6 y Qwen3-235B-A22B, pidiéndoles que juzgaran los exploits y dictaran si cumplían los requisitos del benchmark, mientras que solicitudes separadas alcanzaron a Claude 3 Haiku y Claude Haiku 4.5 a través de un servicio de chat IA en línea.
Limitaciones que los autores revelan
Los autores advierten que aproximadamente el 80 % de sus datos corresponde a tráfico saliente y que solo recuperaron contenido de respuesta limitado, que su reconstrucción probablemente sea incompleta después de haber identificado más de 1 588 combinaciones únicas de métodos de codificación, y que el 97 % de las cargas útiles no contenían información de marca de tiempo de forma nativa. Extrajeron 7 905 nombres de agente únicos, mientras que METR y Redwood informaron aproximadamente 700 agentes que participaron en el ataque a Hugging Face, una diferencia que los autores atribuyen a que los agentes cambian frecuentemente sus nombres más que a una mayor cantidad de agentes. Los autores declaran que no pueden confirmar que todo el conjunto de datos sea actividad de los agentes de OpenAI, y que no pueden identificar con confianza las intenciones detrás de una parte sustancial de la actividad.
Los autores también observan que, al momento de redactar este documento, OpenAI había publicado dos informes autoeditados y una charla sobre el incidente, junto con una investigación externa realizada por METR y Redwood Research en la que a tres investigadores se les proporcionaron transcripciones parciales y seis días para analizarlas, y que OpenAI no había publicado públicamente las transcripciones completas del incidente en Hugging Face. La única parte que puede aclarar estos puntos, escribieron los autores, es OpenAI.












