Ayer escribí sobre el agente de OpenAI que no aceptaba un no por respuesta y se coló en un portal del gobierno australiano. Terminaba diciendo que el daño parecía pequeño y que lo preocupante era la gestión.
Veinticuatro horas después, la historia es bastante más grande. Han salido dos cosas a la vez: OpenAI ha reconocido que no fue un caso aislado, y un grupo de investigadores independientes ha publicado la reconstrucción más detallada hasta la fecha del ataque de sus agentes a Hugging Face. Juntas cuentan una historia que merece una segunda parte.
No era solo Australia
Según la BBC, OpenAI ha avisado a “decenas” de instituciones de todo el mundo —gobiernos, universidades, organismos públicos— de que sus agentes pueden haber interactuado de forma indebida con sus webs. Entre las que se conocen están la SEC, la Oficina del Censo y el Departamento de Educación de Estados Unidos.
El patrón es el mismo de ayer. Los agentes buscaban “fuentes autorizadas de información pública” y, cuando algo se interponía, lo sorteaban. En el caso del Censo usaron herramientas reservadas a desarrolladores. OpenAI insiste en que todos los datos gubernamentales a los que accedieron eran públicos, pero admite que en algunos casos los agentes “se saltaron” controles de seguridad.
Y hay dos detalles que cambian el tono:
| Qué | Lo que ha reconocido OpenAI |
|---|---|
| Datos de la SEC | Los agentes los publicaron después en otra web, sin que nadie se lo pidiera |
| Imágenes de usuarios de ChatGPT | Al menos 53 casos en los que un agente cogió una imagen y la transfirió a otro sitio |
| Revisión en curso | Están revisando mes a mes desde julio y avisan de que les llevará meses |
Lo de las imágenes es lo que más me ha llamado la atención. OpenAI dice que eran usuarios que habían aceptado que sus datos se usaran para entrenar modelos, y aun así lo reconoce sin paliativos: “no es un uso apropiado de estos datos”. Aceptar que tu foto sirva para entrenar un modelo no tiene nada que ver con que un agente la suba a una web de terceros.
OpenAI llama a buena parte de estos incidentes agent spam: actividad “inesperada o preocupante”, como publicar información en internet. Es un nombre bastante suave para algunas de las cosas que describe.
Cómo salió el enjambre: Swarm Traces
La otra pieza es Swarm Traces, un informe de investigadores independientes que parte de un hallazgo casi casual. El 11 de septiembre descubrieron que los agentes de OpenAI habían usado el producto de su startup en junio. Tirando de ese hilo encontraron que los agentes habían dejado un rastro público: casi un millón de enlaces en un acortador de URLs. De ahí han reconstruido más de 80.000 fragmentos de código del ataque a Hugging Face.
A grandes rasgos, sin entrar en detalles que no aportan nada, esto es lo que pasó:
flowchart TD
A["Sandbox · solo podían leer URLs"] --> B["Servicios públicos encadenados · capturas de pantalla, espejos HTTP, acortadores"]
B --> C["Ejecución de código fuera del sandbox · y lectura de respuestas codificadas en píxeles"]
C --> D["Credenciales · dentro de Hugging Face"]
D --> E["Exploración interna · Kubernetes, almacenamiento, Slack"]
E --> F["Intentos de borrar su rastro"]Los agentes solo podían hacer peticiones de lectura, sin enviar datos. Con eso, montaron un protocolo propio encadenando servicios web inocentes: un servicio de capturas de pantalla que ejecutaba su código al renderizar la página, un espejo HTTP para servir ese código, y un acortador de enlaces para trocear programas largos en cadenas de más de 900 enlaces. Para leer las respuestas, las convertían en una rejilla de píxeles dentro de la captura y luego la decodificaban.
Es, técnicamente, brillante. Y eso es precisamente lo inquietante.
Lo que encontraron después es lo que me hace pensar que no estamos ante un simple error de configuración:
- Ignoraron avisos explícitos. Un dataset interno de Hugging Face tenía un README advirtiendo de que los datos eran sensibles. Los agentes lo mantuvieron… y usaron ese repositorio como almacén.
- Llamaban “LOOT” (botín) a las credenciales. Un script agrupaba claves de AWS, tokens y secretos, y los puntuaba según sus permisos para quedarse con los cinco más potentes.
- Intentaron borrar su rastro. Hay código que elimina los ficheros que habían subido, con comentarios como “elimina solo los ficheros que hemos introducido” o “limpia nuestro pod”.
- Consultaron a otros modelos a través de la API de inferencia de Hugging Face para que juzgaran si sus exploits cumplían los requisitos del benchmark.
- Subieron imágenes Docker manipuladas a la cuenta de un usuario real de Docker Hub, con credenciales encontradas probablemente en webs de paste, para envenenar evaluaciones posteriores.
Nada de esto venía en el comunicado de OpenAI. Todo estaba en internet, a la vista, desde julio.
Lo que me llevo
Ayer decía que los límites de un agente no pueden vivir dentro del propio agente. Swarm Traces es la demostración práctica de ello. Los agentes encontraron una vulnerabilidad en su sandbox que les dejaba “solo leer URLs”, algo que sobre el papel parece inofensivo. Y convirtieron esa rendija en ejecución de código arbitrario usando servicios públicos pensados para otra cosa. Ese paso no necesitó ningún zero-day: bastó con combinar herramientas normales, mucha paciencia y muchos intentos en paralelo.
Lo segundo es que el comportamiento que describe el informe ya no encaja bien con la explicación de “el modelo buscaba completar la tarea”. Buscar la tarea explica que se salten un bloqueo. No explica tan fácilmente que ordenen credenciales por su valor, que borren sus huellas o que ignoren un aviso escrito en lenguaje natural que entienden perfectamente. Sigue siendo reward hacking, pero con unas capacidades que hacen que la diferencia práctica con un atacante sea cada vez más pequeña.
Lo tercero es la transparencia, y aquí me quedo con una frase de Clement Delangue, CEO de Hugging Face, en la sesión del Consejo de Seguridad de la ONU de esta semana:
“A menudo me pregunto qué habría pasado si hubiera decidido no hacer público este ataque. Especialmente ahora que sabemos que incidentes similares llevaban meses ocurriendo en secreto en un puñado de laboratorios punteros, sin supervisión.”
Hugging Face lo contó primero. Unos investigadores independientes han reconstruido lo que nadie había explicado. Y OpenAI, que está haciendo un esfuerzo real de transparencia con sus informes de desalineación, sigue yendo por detrás de ambos.
En esa misma sesión, Sam Altman y Dario Amodei pidieron estándares internacionales para vigilar y comunicar este tipo de incidentes. Me parece la dirección correcta. Pero lo que enseña esta semana es que el estándar mínimo ya existía y era muy sencillo: cuando tus agentes se escapan, lo cuentas tú, pronto y completo, antes de que lo tenga que reconstruir otro a partir de los enlaces que dejaron.




