Do Prompt ao Pwned: encadeando vulnerabilidades de LLM e web para obter acesso de administrador

A Quarkslab publicou uma pesquisa na qual conseguiu comprometer uma aplicação web com uma interface de chatbot LLM. Para demonstrar o ataque, eles construíram um ambiente de laboratório baseado num engajamento real de Red Team que emulava um assistente de IA médica chamado FailMed AI num ambiente de produção simulado.
A configuração inclui: •Frontend — React e Vite com uma interface de histórico médico e um chatbot •Backend — Flask REST API com autenticação JWT, um endpoint vulnerável /api/chat e SQLite para armazenar dados de pacientes
Cadeia de vulnerabilidade:
  1. Injeção de Prompt + Manuseio Inseguro de Saída — a resposta do LLM foi renderizada como Markdown, permitindo injeção arbitrária de JavaScript devido à falta de CSP
  2. XSS — um payload como <iframe src='javascript:alert("Quarkslab")'> foi executado com sucesso na interface de chat
  3. O token JWT foi armazenado num cookie sem os atributos HttpOnly, Secure e SameSite
  4. IDOR via ID de chat — qualquer pessoa podia acessar a conversa de outro usuário através de um link direto
Cadeia de ataque: o atacante cria uma conversa contendo o XSS injetado através do LLM e envia o link para um admin → o admin abre o link → o payload XSS é executado → o token JWT é roubado do cookie → acesso administrativo total é obtido
O artigo mostra que quando os desenvolvedores negligenciam práticas básicas de segurança (como filtragem de saída para respostas de LLM, CSP e outras proteções), combinar vulnerabilidades específicas de LLM e web clássicas pode ter um impacto real sério.
Fornecedor
Quarkslab
Produto
Failmed Ai
Flask
Jwt
React
Sqlite
Vite