Detalles de la vulnerabilidad
Una falla crítica en Dialogflow CX de Google habría permitido que un atacante con permisos de edición en un agente habilitado con Code Blocks comprometiera otros agentes con Code Blocks en el mismo proyecto de Google Cloud. Desde allí, podía leer conversaciones en vivo, robar datos compartidos por los usuarios y hacer que los bots enviaran mensajes escritos por el atacante, incluyendo solicitudes para reingresar contraseñas.
La firma de seguridad Varonis descubrió la vulnerabilidad y la denominó Rogue Agent. El fallo afectaba solo a organizaciones que construían agentes con Playbooks y Code Blocks personalizados de Dialogflow, que permiten a los desarrolladores agregar su propio código Python. No se trataba de un ataque remoto no autenticado; requería el permiso dialogflow.playbooks.update en un agente, lo que limitaba el atacante a un insider malicioso o una cuenta de desarrollador comprometida.
Google ha corregido la vulnerabilidad, y tanto Varonis como Google afirman que no hay evidencia de que haya sido explotada en ataques reales.
Mecanismo del ataque
Los Code Blocks de Dialogflow permiten a los desarrolladores agregar Python personalizado al flujo de conversación de un chatbot para validar entradas, controlar el comportamiento e invocar herramientas definidas. Ese código se ejecuta en un entorno Cloud Run administrado por Google, y todos los agentes que usan Code Blocks en el mismo proyecto de Google Cloud comparten una misma instancia de ese entorno.
Varonis descubrió que el archivo code_execution_env.py, que envuelve el código del desarrollador y lo pasa a la función exec() de Python, residía en el entorno compartido con permisos de escritura. Al ser modificable, un solo Code Block podía reemplazarlo descargando una versión alterada desde un servidor controlado por el atacante. A partir de entonces, la versión maliciosa se ejecutaba para todos los Code Blocks de todos los agentes que compartían el entorno, permitiendo leer conversaciones, enviar datos al atacante y hacer que el bot publicara mensajes falsos.
Problemas adicionales en el sandbox
Varonis reportó dos problemas relacionados que no requerían la sobrescritura del archivo. Primero, el entorno de Code Blocks tenía acceso de salida sin restricciones a Internet, lo que permitía enviar datos directamente a un servidor externo y recibir comandos, eludiendo VPC Service Controls. Segundo, el entorno exponía el servicio de metadatos de instancia (IMDS), que normalmente es interno y entrega credenciales en la nube, aunque la cuenta de servicio asociada tenía pocos privilegios.
Detección y respuesta
La sobrescritura del archivo ocurría dentro del entorno de Google, donde los clientes no tienen visibilidad, y Cloud Logging no registró el cambio del archivo ni el código inyectado. Varonis divulgó la vulnerabilidad a través del programa de recompensas de vulnerabilidades de Google en noviembre de 2025. Google implementó una corrección inicial en abril de 2026 y la resolvió completamente en junio de 2026, aproximadamente siete meses después del reporte. No se asignó un CVE.
Recomendaciones para usuarios
Si usó agentes de Dialogflow CX con Code Blocks antes de la corrección y desea confirmar que no fue atacado, comience auditando quién tiene el permiso dialogflow.playbooks.update. Luego:
- Revise los registros de auditoría DATA_WRITE de la API de Dialogflow en busca de actualizaciones inesperadas de playbooks, correlacionándolas con usuarios, IP o horarios inusuales.
- Ejecute una consulta en Cloud Logging para solicitudes fallidas de usuarios, donde los mensajes de error pueden revelar excepciones lanzadas por Code Blocks maliciosos.
- En la consola de Dialogflow, abra Playbooks para cada agente y confirme que cada Code Block es uno que usted aprobó.
Un fallo de AI diferente
A diferencia de muchas vulnerabilidades recientes de seguridad en IA que engañan al modelo, Rogue Agent no afectó al modelo en absoluto. Abusó de una característica normal de desarrollo y de un entorno compartido e invisible, alcanzable con un permiso de edición ordinario. En una configuración como esta, un permiso que parece un derecho de edición de contenido es en realidad un derecho de ejecución de código. Cualquiera que pueda agregar un Code Block puede ejecutar Python arbitrario dentro de un entorno compartido que el cliente no puede inspeccionar. Trate los permisos de edición de agentes como los controles de ejecución que realmente son.




















Deja una respuesta