
Prueba de concepto que demuestra XSS almacenado e IDOR en el chat del agente de IA de Chaindesk, lo que permite el robo de tokens de sesión y el secuestro de cuentas.
Chaindesk, una aplicación web para construir Agentes de IA, es vulnerable a Cross-Site Scripting (XSS) Almacenado en su componente de chat de agentes. Un atacante puede lograr la ejecución arbitraria de scripts en el lado del cliente creando un agente de IA cuyo prompt de sistema instruya al Modelo de Lenguaje Grande (LLM) subyacente para que incruste payloads de scripts maliciosos (por ejemplo, XSS basado en SVG) en sus respuestas de chat. Cuando un usuario interactúa con un agente malicioso de este tipo, o accede a un enlace directo a una conversación que contiene un payload XSS, el script se ejecuta en el navegador del usuario. Una explotación exitosa puede conducir al robo de información sensible, como tokens de sesión JWT, lo que potencialmente resulta en el secuestro de la cuenta. Una vulnerabilidad de Referencia Directa a Objetos Insegura (IDOR) en la estructura de URL de las conversaciones (https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID>) facilita la distribución de estos enlaces de conversación maliciosos y también puede suponer un riesgo de acceso no autorizado a otras sesiones de chat.
Chaindesk es susceptible a una vulnerabilidad de Cross-Site Scripting (XSS) Almacenado dentro de su funcionalidad de chat de agentes de IA. Esta vulnerabilidad afecta a las interacciones de los usuarios y a las conversaciones mostradas a través de URLs como https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID>.
El método principal para explotar este XSS implica que un atacante cree un agente de IA con un prompt de sistema manipulado. Este prompt malicioso dirige al Modelo de Lenguaje Grande (LLM) integrado para que genere respuestas que contengan un payload XSS SVG incrustado. En consecuencia, cuando una víctima entabla un chat con este agente comprometido, el payload es renderizado por el navegador de la víctima, lo que provoca la ejecución de scripts en el lado del cliente. Esta técnica utiliza eficazmente la configuración del agente para almacenar y entregar el payload XSS. La ejecución de código JavaScript arbitrario en la sesión de la víctima permite al atacante robar datos sensibles, especialmente tokens JWT, que pueden utilizarse posteriormente para el secuestro de la cuenta. La Figura 1 muestra el renderizado de la interfaz después de que el usuario se comunica con el agente malicioso; se filtra la sesión y el token del usuario.

Además, la aplicación presenta una vulnerabilidad de Referencia Directa a Objetos Insegura (IDOR) (también clasificable como Control de Acceso Roto) en relación con el manejo de las URLs de conversación. El endpoint https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID> se basa principalmente en los parámetros agentID y conversationID para mostrar el contenido del chat, con comprobaciones de control de acceso aparentemente insuficientes. Esta vulnerabilidad IDOR permite a un atacante: a) Crear y distribuir URLs directas que apuntan a conversaciones que controla y que contienen un payload XSS (entregado a través del método LLM descrito anteriormente o potencialmente incrustado de otra manera). Cuando una víctima accede a dicha URL, el payload XSS se ejecuta. b) Potencialmente acceder a las conversaciones de otros usuarios si se pueden identificar combinaciones válidas de agentID y conversationID. Sin embargo, el informe inicial indica que los valores de conversationID pueden no ser fácilmente adivinables para un acceso no autorizado generalizado a conversaciones preexistentes y no relacionadas. No obstante, la utilidad del IDOR para entregar payloads XSS a víctimas específicas sigue siendo una preocupación significativa. La Figura 2 muestra el POC de la vulnerabilidad IDOR.

Esta vulnerabilidad puede afectar a cualquier usuario de https://www.chaindesk.ai. La cookie (que contiene la sesión y el token) del usuario será robada cuando se comunique con un agente malicioso público.