
Prova de conceito demonstrando XSS armazenado e IDOR no chat do agente de IA Chaindesk, permitindo roubo de token de sessão e sequestro de conta.
O Chaindesk, um aplicativo web para construção de Agentes de IA, é vulnerável a Cross-Site Scripting (XSS) Armazenado em seu componente de chat de agentes. Um atacante pode obter execução arbitrária de scripts no lado do cliente ao criar um agente de IA cujo prompt de sistema instrui o Modelo de Linguagem de Grande Escala (LLM) subjacente a incorporar payloads de script maliciosos (por exemplo, XSS baseado em SVG) em suas respostas de chat. Quando um usuário interage com tal agente malicioso, ou acessa um link direto para uma conversa contendo um payload de XSS, o script é executado no navegador do usuário. A exploração bem-sucedida pode levar ao roubo de informações sensíveis, como tokens de sessão JWT, potencialmente resultando em sequestro de conta. Uma vulnerabilidade de Referência Direta a Objeto Insegura (IDOR) na estrutura de URL de conversa (https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID>) facilita a distribuição desses links de conversa maliciosos e também pode representar risco de acesso não autorizado a outras sessões de chat.
O Chaindesk é suscetível a uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado na funcionalidade de chat de seus agentes de IA. Esta vulnerabilidade afeta as interações do usuário e a exibição de conversas acessadas por meio de URLs como https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID>.
O principal método para explorar este XSS envolve um atacante criando um agente de IA com um prompt de sistema especialmente elaborado. Este prompt malicioso instrui o Modelo de Linguagem de Grande Escala (LLM) integrado a gerar respostas contendo um payload de XSS SVG incorporado. Consequentemente, quando uma vítima interage em um chat com este agente comprometido, o payload é renderizado pelo navegador da vítima, levando à execução de scripts no lado do cliente. Esta técnica efetivamente usa a configuração do agente para armazenar e entregar o payload de XSS. A execução de código JavaScript arbitrário na sessão da vítima permite ao atacante roubar dados sensíveis, notavelmente tokens JWT, que podem então ser usados para sequestro de conta. A Figura 1 mostra a renderização da interface do usuário após o usuário se comunicar com o agente malicioso, vazando a sessão e o token do usuário.

Além disso, o aplicativo apresenta uma vulnerabilidade de Referência Direta a Objeto Insegura (IDOR) (também classificável como Controle de Acesso Quebrado) em relação à forma como as URLs de conversa são tratadas. O endpoint https://app.chaindesk.ai/agents/<agentID>?tab=chat&conversationId=<conversationID> depende principalmente dos parâmetros agentID e conversationID para exibir o conteúdo do chat, aparentemente sem verificações suficientes de controle de acesso. Esta vulnerabilidade IDOR permite a um atacante: a) Criar e distribuir URLs diretas que apontam para conversas que controla e que contêm um payload de XSS (entregue por meio do método LLM descrito acima ou potencialmente incorporado de outra forma). Quando uma vítima acessa tal URL, o payload de XSS é executado. b) Potencialmente acessar conversas de outros usuários se combinações válidas de agentID e conversationID puderem ser identificadas. No entanto, o relatório inicial indica que os valores de conversationID podem não ser facilmente adivinháveis para acesso não autorizado generalizado a conversas pré-existentes e não relacionadas. Ainda assim, a utilidade do IDOR para entregar payloads de XSS a vítimas específicas continua sendo uma preocupação significativa. A Figura 2 mostra a prova de conceito da vulnerabilidade IDOR.

Esta vulnerabilidade pode impactar qualquer usuário de https://www.chaindesk.ai. O cookie (que contém a sessão e o token) do usuário será roubado quando ele se comunicar com um agente malicioso público.