La falla de un agente fraudulento podría haber permitido a los atacantes secuestrar los chatbots CX de Google Dialogflow – CYBERDEFENSA.MX

Un defecto crítico en Dialogflow CX de Google podría haber permitido que un atacante con derechos de edición en un agente habilitado para Code Block comprometiera a otros agentes habilitados para Code Block en el mismo proyecto de Google Cloud.

Desde allí, podían leer conversaciones en vivo, robar los datos compartidos por los usuarios y hacer que los bots enviaran mensajes escritos por los atacantes, incluidas solicitudes para volver a ingresar una contraseña.

Empresa de seguridad varonis Lo encontró y lo nombró Agente rebelde. La falla afectó solo a las organizaciones que crearon agentes con los Playbooks de Dialogflow y bloques de código personalizados, que permitieron a los desarrolladores agregar su propio Python. Y no fue un ataque remoto y no autenticado.

Para lograrlo, se necesitaba el permiso dialogflow.playbooks.update en uno de esos agentes, lo que limita al atacante realista a un interno malicioso o una cuenta de desarrollador comprometida, no a un extraño en Internet. Sin embargo, desde ese único punto de apoyo, el alcance se extendió a todos los agentes del proyecto.

Google lo ha solucionado, y tanto Varonis como Google dicen que no hay señales de que la falla haya sido utilizada alguna vez en un ataque real.

Un archivo grabable ejecutó los bloques de código de cada agente

Los bloques de código de Dialogflow permiten a los desarrolladores agregar Python personalizado al flujo de conversación de un chatbot para verificar la entrada, controlar el comportamiento e invocar herramientas definidas. Ese código se ejecuta en un entorno Cloud Run administrado por Google y cada agente que usa bloques de código en el mismo proyecto de Google Cloud comparte una instancia del mismo.

Google maneja ese entorno, el cliente no puede verlo ni controlarlo, y Varonis no encontró un aislamiento real entre los agentes dentro de él.

Ciberseguridad

Cuando un agente ejecuta un bloque de código, el código del desarrollador se agrega al código de configuración interno y se pasa a la función exec() de Python. Ese código de configuración define las variables y funciones que el bloque puede tocar. Las variables incluyen el historial de la conversación completa y el estado de los detalles de la sesión, como el ID de la sesión. Las funciones incluyen responder(), que hace que el bot responda con una cadena determinada.

Varonis encontró el archivo que realiza este ajuste, code_execution_env.py, en el entorno compartido con acceso de escritura.

Como ese archivo se podía escribir, un solo bloque de código podría reemplazarlo. Ese bloque descarga un code_execution_env.py modificado desde un servidor controlado por un atacante y sobrescribe el original dentro del contenedor en ejecución.

A partir de ese momento, la versión del atacante se ejecuta para cada ejecución de bloque de código en cada agente que comparte ese entorno. Se encuentra en el mismo alcance que el código legítimo, con el mismo acceso al historial, estado y respuesta().

Eso le permite leer cada conversación, enviarla silenciosamente al servidor del atacante y hacer que el bot publique mensajes escritos por el atacante. Un ejemplo es el phishing: el bot le pide al usuario que vuelva a verificar su inicio de sesión y el atacante recopila todo lo que escribe.

Para cubrir las pistas, el atacante restaura el bloque de código original en la consola de Dialogflow. Eso cambia sólo lo que muestra la consola; el archivo sobrescrito ya se está ejecutando en el contenedor y sigue ejecutándose debajo.

La caja de arena se filtró de dos maneras más

Varonis informó dos problemas relacionados y ninguno necesitaba sobrescribir el archivo. Primero, el entorno Code Block tenía acceso saliente a Internet sin restricciones. Utilizando la biblioteca urllib incorporada, los investigadores enviaron datos directamente a un servidor externo y pudieron recibir comandos.

Varonis dice que esto pasa por alto los controles de servicio de VPC, el perímetro de Google Cloud destinado a evitar que los datos abandonen los servicios protegidos. El entorno se encuentra fuera de ese perímetro y puede llegar a Internet abierto, lo que lo convierte en un canal tanto para el robo de datos como para el control remoto.

En segundo lugar, y menos grave, el entorno expuso el Servicio de Metadatos de Instancia (IMDS), un punto final normalmente interno que entrega credenciales de nube. Al consultarlo se devolvió un token para una cuenta de servicio administrada por Google.

Esa cuenta tenía pocos privilegios, por lo que el riesgo directo era limitado; El verdadero punto es que un entorno limitado de ejecución de código no debería poder llegar a IMDS en absoluto.

Casi nada llegó a los registros.

La sobrescritura se produjo dentro del entorno de Google, donde los clientes no tienen visibilidad y Cloud Logging no registró el cambio de archivo ni el código inyectado.

Eso hace que sea difícil, aunque no imposible, captar la situación por parte del cliente. Las acciones de configuración aún dejan rastros, en los que se basan las comprobaciones siguientes.

Ciberseguridad

Varonis reveló la falla a través del Programa de recompensa por vulnerabilidades de Google en noviembre de 2025. Google envió una solución inicial en abril de 2026 y la resolvió por completo en junio de 2026, aproximadamente siete meses desde el informe hasta la resolución. No se asignó ningún CVE.

Qué verificar si usaste bloques de código

Si ejecutó agentes de Dialogflow CX con Code Block Playbooks antes de la solución y desea confirmar que no fue el objetivo, comience con el acceso.

El permiso dialogflow.playbooks.update es el punto de entrada completo, así que audite qué roles y cuentas lo tienen.

Entonces:

  • Revise sus registros de auditoría DATA_WRITE para la API de Dialogflow en busca de actualizaciones inesperadas del manual y correlacione con usuarios, direcciones IP u tiempos de acceso inusuales.
  • Ejecute una consulta de Cloud Logging para solicitudes fallidas de usuarios, donde los mensajes de error pueden revelar excepciones generadas por bloques de código maliciosos.
  • En la consola de Dialogflow, abra Playbooks para cada agente y confirme que cada bloque de código sea uno que haya aprobado.

Un tipo diferente de falla de la IA

Muchas fallas de seguridad recientes de la IA han funcionado engañando al modelo.

El propio Reprompt y SearchLeak de Varonis convirtieron un solo clic en robo de datos en Copilot de Microsoft. ForcedLeak de Noma Security ocultó instrucciones en un formulario web de Salesforce para extraer datos de CRM.

Los investigadores de Microsoft demostraron una inyección rápida convirtiéndose en ejecución de código en el marco del kernel semántico. Rogue Agent no tocó el modelo en absoluto. Abusó de una característica normal del desarrollador y de un tiempo de ejecución invisible y compartido, al que se puede acceder con un permiso de edición normal.

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 bloque de código puede ejecutar Python arbitrario dentro de un entorno compartido que el cliente no puede inspeccionar.

Trate los permisos de edición del agente como los controles de tiempo de ejecución que son. Incluso cuando el proveedor dice que no es necesario arreglar nada, los clientes todavía no tienen forma de mirar dentro de ese tiempo de ejecución por sí mismos.

La falla del copiloto de Microsoft 365 con un solo clic podría haber permitido a los atacantes robar correos electrónicos, archivos y códigos MFA

Un solo clic en un enlace confiable de Microsoft podría haber permitido a un atacante extraer correos electrónicos, detalles del calendario y archivos indexados de Microsoft 365 Copilot Enterprise Search.

Los investigadores de Varonis Threat Labs encadenaron tres errores en una ruta de exfiltración con un solo clic que llaman Buscarfuga. Debido a que el enlace apuntaba a un dominio microsoft.com real, era poco probable que las herramientas tradicionales de filtrado de URL y antiphishing lo marcaran.

Sin mensaje, sin contraseña, sin segundo clic. Microsoft asignado CVE-2026-42824 y lo marcó crítico; las puntuaciones CVSS fueron más bajas y en desacuerdo, 6,5 de Microsoft y 7,5 de Base de datos nacional de vulnerabilidad. La empresa mitigó la falla en su backend, por lo que los clientes no tienen nada de qué preocuparse, y Varonis presentó una prueba de concepto, una explotación no observada.

Tres errores, un clic

El aviso de Microsoft describe la falla como una inyección de comando que puede exponer información a través de una red. En la práctica, SearchLeak acumula una debilidad específica de la IA en dos errores web antiguos, y cada enlace es necesario para el siguiente.

El punto de entrada es el q parámetro en la URL de búsqueda de Copilot Enterprise. Está destinado a una consulta en lenguaje natural, pero Copilot lee todo lo que contiene como instrucciones, no solo una cadena de búsqueda.

varonis llama a esto Inyección de parámetro a mensaje. Un atacante escribe una URL que le indica a Copilot que busque en el buzón, tome un título de correo electrónico y lo coloque dentro de una URL de imagen. La víctima no escribe nada. Hacen clic y Copilot hace el trabajo.

Ciberseguridad

Lo siguiente es una condición de carrera en cómo se representa la respuesta. La barrera de seguridad de Microsoft envuelve la producción de Copilot bloquea para que el navegador trate el marcado como texto. El problema es el tiempo: el ajuste ocurre después de que Copilot termina de generar, pero el navegador procesa la transmisión a medida que llega. el inyectado La etiqueta se dibuja y activa su solicitud antes de que se ejecute el desinfectante. Cuando se neutraliza la salida, la solicitud ya se ha ido.

El último enlace pasa los datos más allá de la Política de seguridad de contenido de la página. El CSP en m365.cloud.microsoft bloquea imágenes de dominios arbitrarios, pero incluye en la lista blanca *.bing.com. El punto final «Buscar por imagen» de Bing acepta la URL de una imagen y la recupera del lado del servidor para analizarla. Apunte esa recuperación al servidor de un atacante con el texto robado codificado en la ruta y Bing lo recupera. El CSP del navegador nunca se aplica porque la solicitud proviene de la infraestructura de Bing. Bing se convierte en el proxy de exfiltración. La lista de permitidos de CSP se esconde.

En conjunto: la víctima hace clic, Copilot busca sus datos, la respuesta incorpora un valor como un asunto de correo electrónico en una URL de imagen de Bing, el navegador llama a Bing durante la transmisión y Bing extrae la URL del atacante. El atacante lo lee de sus propios registros, por ejemplo, una solicitud de /Your_Security_Code_847291/img.png.

Lo que obtiene un atacante

Copilot Enterprise puede alcanzar todo lo que el usuario que haya iniciado sesión pueda alcanzar, a través de su acceso a Microsoft Graph, y el atacante hereda ese alcance sin siquiera iniciar sesión.

El premio más urgente se encuentra en la bandeja de entrada: códigos de un solo uso, códigos MFA y enlaces para restablecer contraseñas, que a menudo siguen siendo válidos durante unos minutos. Un script que los saca de un registro mientras la ventana está abierta puede hacerse cargo de una cuenta antes de que alguien se dé cuenta.

Ciberseguridad

El mismo acceso también llega a las invitaciones del calendario, notas de reuniones y cualquier archivo de SharePoint o OneDrive que Copilot haya indexado, donde se encuentran los datos salariales, las cifras de ganancias y los planes de adquisición.

SearchLeak es la segunda vez que Varonis muestra este patrón. El investigador de Varonis, Dolev Taler, demostró la misma técnica de un clic en un ataque Reprompt anterior contra Copilot Personal, y resistió contra Enterprise Search a pesar de las barreras de seguridad adicionales que se supone que debe imponer ese nivel.

El mismo patrón apareció en EchoLeak (CVE-2025-32711), el error de fuga de datos de Copilot sin clic que Aim Security reveló en 2025. SSRF y carreras de desinfectantes son clases de errores antiguos; la inyección rápida es la pieza nueva y hace que estén accesibles nuevamente.

Microsoft mitigó la falla en su backend y, debido a que Copilot Enterprise es un servicio administrado, los administradores de inquilinos no pueden parchear ni reconfigurar las partes que fallaron. Lo que pueden hacer es observar y contener.

Busque URL de Copilot Search que contengan cargas útiles codificadas o HTML en el parámetro q, y solicitudes salientes inusuales a los puntos finales de imágenes de Bing. Reforzar la gobernanza del acceso a los datos para que Copilot indexe menos, lo que reduce lo que puede alcanzar cualquier filtración futura.