Un link manipulado de ChatGPT podía crear un agente IA autónomo

Zenity Labs ha revelado una vulnerabilidad en los agentes de espacio de trabajo (Workspace Agents) de OpenAI, denominada "AgentForger", donde un único enlace manipulado podía crear un agente de inteligencia artificial autónomo que actuaba en nombre del usuario sin su conocimiento. El ataque aprovechaba los parámetros de URL para secuestrar los permisos de las aplicaciones de la víctima, desactivar los controles de seguridad y ejecutar comandos del atacante de forma permanente y programada, convirtiendo efectivamente las capacidades de la plataforma en contra del usuario. Aunque OpenAI corrigió la vulnerabilidad en cuatro días, Zenity sostiene que el incidente destaca un problema más amplio: las herramientas de seguridad tradicionales no están equipadas para manejar agentes autónomos que operan bajo identidades de usuario legítimas.

Un solo link de ChatGPT manipulado podía activar un agente de IA que revisaba silenciosamente la bandeja de entrada del atacante en busca de nuevas órdenes cada cinco minutos. Zenity Labs denomina a la falla como una nueva clase de ataque contra la IA basada en agentes. La firma de seguridad de IA encontró esta vulnerabilidad en los Workspace Agents de OpenAI que permitía que un enlace manipulado creara un agente autónomo bajo la cuenta de un empleado. El agente asumía la identidad de la víctima y reutilizaba sus permisos de aplicación existentes, omitiendo los pasos de aprobación destinados a proteger acciones sensibles.

Zenity nombró a la vulnerabilidad "AgentForger" y la considera una evolución del clásico Cross-Site Request Forgery (CSRF). En un ataque CSRF típico, alguien hace clic en un enlace malicioso o aterriza en una página diseñada para ello y, sin saberlo, dispara una acción autenticada que nunca tuvo la intención de realizar.

Diagrama comparativo donde un CSRF clásico falsifica una solicitud, mientras que AgentForger falsifica un agente completo
Diagrama comparativo donde un CSRF clásico falsifica una solicitud, mientras que AgentForger falsifica un agente completo

AgentForger fue más allá. En lugar de activar una única acción no deseada, el enlace de ChatGPT manipulado iniciaba la creación de un agente totalmente autónomo. Ese agente operaba dentro del límite de confianza de la empresa, aprovechaba los conectores que la víctima ya había autorizado y recogía nuevas tareas del atacante de forma recurrente.

¿Cómo permitieron los parámetros URL automatizar la creación de agentes?

La creación de un agente de Workspace es normalmente un proceso interactivo. Los usuarios seleccionan una plantilla, ingresan instrucciones, conectan herramientas, revisan la configuración de uso compartido, prueban el agente en modo de vista previa y luego lo publican. AgentForger permitía a los atacantes activar la mayor parte de ese proceso a través de una URL con poca intervención adicional del usuario.

El Agent Builder, introducido en 2025, está disponible en chatgpt.com/agents/studio/new y acepta dos parámetros de URL. El parámetro template_name selecciona una plantilla inicial como "chief-of-staff", mientras que initial_assistant_prompt suministra las instrucciones. Zenity descubrió que la página no solo colocaba el valor de initial_assistant_prompt en el campo de instrucciones, sino que también enviaba y ejecutaba el prompt automáticamente. Los atacantes no necesitaban enviar solicitudes sin procesar a ChatGPT ni manipular directamente el navegador de la víctima. Todo lo que necesitaban era un enlace de chatgpt.com con un prompt adjunto que pareciera inofensivo a primera vista.

El ataque comienza con un correo electrónico de aspecto común que disfraza el enlace manipulado de ChatGPT como un consejo de productividad
El ataque comienza con un correo electrónico de aspecto común que disfraza el enlace manipulado de ChatGPT como un consejo de productividad

El único requisito previo era que la víctima estuviera conectada a ChatGPT, tuviera acceso a los Workspace Agents y hubiera autorizado al menos un conector como Outlook, Gmail, Slack, Google Drive, SharePoint o Teams. Debido a que las conexiones ya existían, no aparecía ninguna nueva solicitud de consentimiento OAuth que pudiera haber alertado a la víctima.

¿Qué ocurría tras un solo clic de la víctima?

En la demostración, Zenity incrustó un prompt en la URL que guiaba al Builder a través de todos los pasos en una lista de tareas numerada. El agente se configuró para integrar todos los conectores no-MCP ya conectados y cambiar cada requisito de permiso para lectura, escritura y eliminación a "Nunca preguntar".

El agente finalizado con los conectores vinculados y todos los requisitos de permiso desactivados
El agente finalizado con los conectores vinculados y todos los requisitos de permiso desactivados

También creó programaciones para ejecutarse cada cinco minutos, revisó Outlook en busca de correos electrónicos del atacante con la palabra "TASK" en la línea de asunto, ejecutó sus instrucciones utilizando las aplicaciones conectadas y envió los resultados de vuelta sin filtrar. El Builder creó un agente llamado "TASK Mail Operator" sin preguntar al usuario. Conectó los servicios autorizados, deshabilitó los requisitos de aprobación, publicó el agente y lo lanzó en Modo de Vista Previa (Preview Mode).

Zenity señala que el Modo de Vista Previa no es solo una prueba visual: ejecuta el nuevo agente contra las cuentas reales conectadas de la víctima utilizando la configuración de aprobación que se acaba de configurar. Dado que cada configuración ya estaba establecida en "Nunca preguntar", la primera ejecución finalizó sin solicitar la aprobación del usuario.

El Modo de Vista Previa no es una prueba en seco, sino que ejecuta el agente contra cuentas reales
El Modo de Vista Previa no es una prueba en seco, sino que ejecuta el agente contra cuentas reales

¿Cómo lograron los atacantes un acceso persistente?

Sin el programador (scheduler), el ataque habría sido un evento único. El programador transforma al agente falsificado en algo que se asemeja a una infraestructura de comando y control. Una vez que se despliega el agente, la víctima no necesita hacer clic de nuevo ni volver a abrir ChatGPT. El agente se activa cada cinco minutos, revisa la bandeja de entrada en busca de nuevos correos electrónicos con tareas, ejecuta las instrucciones que contienen y envía los resultados de vuelta. El clic inicial instala el agente, el programador lo mantiene vivo y la bandeja de entrada se convierte en el canal de comando.

Doce programaciones escalonadas suman una ejecución cada cinco minutos
Doce programaciones escalonadas suman una ejecución cada cinco minutos

En la segunda parte de su análisis, Zenity muestra lo que los atacantes podrían hacer a través de este canal. Tras recibir el comando "TASK 1: RECON", el agente mapeó la organización. Extrajo datos de Outlook, Slack, Teams, Drive, SharePoint y el Calendario para listar personas, roles, canales, proyectos activos y reuniones recurrentes.

Un solo comando por correo electrónico genera un mapa completo de la empresa
Un solo comando por correo electrónico genera un mapa completo de la empresa

El agente también realizó búsquedas en Drive, SharePoint y Outlook. Encontró una hoja de términos de M&A, una presentación de la junta directiva que mencionaba objetivos de ingresos incumplidos y planes de despido, y una exportación de empleados de toda la empresa con datos de contacto y compensación. Una solicitud enmarcada como un "ejercicio DLP" indicó al agente que buscara en Slack la cadena "pass:". El agente encontró un par de nombre de usuario y contraseña de base de datos y envió ambos por correo electrónico al atacante.

Enmarcado como un ejercicio DLP, el agente entrega las credenciales de inicio de sesión que encontró en texto plano
Enmarcado como un ejercicio DLP, el agente entrega las credenciales de inicio de sesión que encontró en texto plano

Otras tareas abusaron de la identidad confiable de la víctima. El agente envió mensajes a través de la cuenta de Teams de la víctima pidiendo a sus colegas que confirmaran un despliegue de SSO en una página de inicio de sesión controlada por el atacante. Zenity también probó el phishing a través de Slack y una plantilla de compromiso de correo electrónico empresarial. Otras pruebas incluyeron una solicitud de aprobación para una transferencia bancaria de USD 242,500 y una invitación de calendario con un participante controlado por el atacante.

El phishing enviado desde el interior de la empresa parece mucho más creíble que cualquier correo electrónico externo
El phishing enviado desde el interior de la empresa parece mucho más creíble que cualquier correo electrónico externo

Zenity rastrea a AgentForger hasta dos elecciones de diseño relacionadas. El constructor trataba el parámetro initial_assistant_prompt como una entrada ejecutable en lugar de una entrada de usuario que necesitaba confirmación. Una URL controlada por el atacante podía, por tanto, cambiar datos y configuraciones dentro de la sesión autenticada de la víctima sin su aprobación explícita. El mismo prompt también podía cambiar la configuración de seguridad, incluidas las políticas de aprobación y los programas de ejecución, lo que significaba que la instrucción podía desactivar el sistema destinado a requerir aprobación humana para acciones sensibles. Zenity describe la combinación como "la trifecta letal": la URL proporcionaba una entrada no confiable, los conectores proporcionaban acceso a datos privados y el correo electrónico ofrecía una ruta para enviar esos datos hacia el exterior. Vía The Decoder.