Uma extensão de terceiros para o SillyTavern, plataforma open-source de front-end para chatbots com inteligência artificial, continha um backdoor sofisticado que roubou chaves de API de ao menos 25 provedores de IA, incluindo OpenAI, Anthropic e Google. A vulnerabilidade foi revelada em 28 de abril de 2026 e motivou a publicação de 12 CVEs pelo projeto.
Ataque de cadeia de suprimentos
A extensão maliciosa, chamada BotBrowser, foi publicada no repositório do SillyTavern por uma conta GitHub identificada como mia13165, criada em novembro de 2025. O código explorava uma falha de path traversal corrigida na versão 1.17.0 do SillyTavern para injetar HTML malicioso via banco de dados de “cards” envenenado, hospedado em um segundo repositório controlado pelo atacante (mia13165/updated_cards).
A extensão oferecia funcionalidade legítima de navegação automatizada, o que dificultou a identificação imediata do comportamento malicioso. Comunidades de segurança só detectaram a anomalia quando usuários reportaram tráfego de rede suspeito para domínios desconhecidos.
O aviso oficial dos mantenedores do SillyTavern, publicado em 3 de maio de 2026 no GitHub Discussions (discussão #5592), confirmou que a extensão “explorou uma vulnerabilidade previamente corrigida no sistema de backup de dados para exfiltrar chaves de API de usuários que a tinham instalada”. O tópico foi bloqueado como resolvido.
Cadeia de ataque em três estágios
O disclosure técnico detalha uma operação em três camadas projetada para evadir ferramentas de monitoramento.
O primeiro estágio usou um card de “avatar padrão” com uma tag <img> contendo payload codificado em base64 no handler onload. O arquivo detailModal.js do BotBrowser injetou o conteúdo via innerHTML sem sanitização — uma vulnerabilidade de XSS armazenado que o navegador executou como código legítimo.
O segundo estágio configurou um temporizador no sessionStorage com atraso aleatório entre 15 e 25 minutos antes de buscar e executar via eval() um script remoto hospedado em raw.githubusercontent.com/gm92342/sdhiabfgncf/main/run.js. O atraso intencional impedia que desenvolvedores com o DevTools aberto captassem a requisição em tempo real.
O terceiro estágio carregou o fengari-web, uma máquina virtual Lua 5.3 que opera dentro do navegador. A VM executou um script Lua com 822 strings codificadas e sete métodos distintos para chamar Promise.then(), técnica projetada para evitar detecção por ferramentas anti-hooking. O payload verificava a chave session-2389432 no sessionStorage para executar apenas uma vez por sessão.
Em instâncias multi-usuário com privilégios de administrador, o malware enumerava todos os usuários via /api/users/list, baixava backups ZIP através de /api/users/backup, extraía secrets.json e settings.json com a biblioteca JSZip e enviava os dados cifrados com cifra Vigenère (chave hardcoded: st-anchor-2025) para um servidor de comando e controle em domínios *.srv.us, um serviço de túnel SSH.
12 CVEs e superfície de ataque
O ataque motivou a publicação de 12 CVEs pelo projeto SillyTavern entre março e maio de 2026. Os mais críticos incluem:
- CVE-2026-44650 (Crítico) — Path traversal no SillyTavern, vetor de entrada explorado pelo BotBrowser
- CVE-2026-44649 (Crítico) — Bypass de autenticação via injeção de header SSO
- CVE-2026-44648 (Alto) — Reutilização de sessão após troca de senha
- CVE-2026-46372 (Alto) — SSRF no proxy SearXNG
- CVE-2026-34522 (Alto) — Path traversal na importação de chats
- CVE-2026-44651 (Médio) — XSS refletido no proxy CORS
- CVE-2026-44652 (Médio) — SSRF no proxy CORS
A simultaneidade de falhas de path traversal, SSRF, XSS e bypass de autenticação revela uma superfície de ataque ampla em uma plataforma que processa credenciais de múltiplos provedores de IA na interface do navegador.
Escopo dos dados roubados
O malware coletou chaves de API de 25 provedores: OpenAI, Anthropic/Claude, Google/Gemini, NovelAI, DreamGen, DeepSeek, OpenRouter, xAI/Grok, Hugging Face, Together AI, Moonshot AI, Fireworks AI, Vertex AI, Azure OpenAI, Mistral AI, Groq, Perplexity, NanoGPT, ZAI/GLM, AIML API, Featherless, ElectronHub, Oobabooga, Horde e custom endpoints. Também acessou configurações de proxy reverso, senhas de proxy, URLs de endpoints customizados e perfis de conexão completos.
Em instâncias multi-usuário, o atacante obtinha credenciais de todos os usuários, não apenas do administrador. A análise de desobfuscação completa confirmou que logs de chat, cards de personagens e imagens não foram acessados — o malware era cirúrgico na coleta de credenciais.
Contas eliminadas sem resposta
As duas contas GitHub usadas na operação — mia13165 (UID 202182454) e gm92342 — foram deletadas após a divulgação. A extensão StructuredPrefill, publicada pelo mesmo autor, também é considerada suspeita pela comunidade. O disclosure no rentry.co acumulou mais de 9.000 visualizações, mas nenhuma publicação especializada em segurança cobriu o incidente até o momento.
O que fazer agora
Usuários que instalaram o BotBrowser devem executar três passos imediatos: deletar a pasta da extensão em data/default-user/extensions/third-party/SillyTavern-BotBrowser/, revogar todas as chaves de API nos 25 provedores listados e alterar senhas de proxy. A atualização para SillyTavern 1.17.0 ou superior é obrigatória — essa versão corrige o path traversal explorado como vetor de entrada.
Em instâncias multi-usuário, administradores devem auditar logs de acesso à API /api/users/backup, forçar rotação de credenciais de todos os usuários e verificar a chave session-2389432 no sessionStorage como indicador de comprometimento. A verificação de tráfego de saída para domínios *.srv.us em logs de rede pode identificar máquinas afetadas.
Fontes:
- Disclosure técnico do backdoor (rentry.co)
- PSA oficial dos mantenedores do SillyTavern (GitHub #5592)
- Advisories de segurança do SillyTavern (GitHub)
IOCs:
- sessionStorage key:
session-2389432 - Extensão:
SillyTavern-BotBrowser - Script remoto:
raw.githubusercontent.com/gm92342/sdhiabfgncf/main/run.js - Contas GitHub:
mia13165(deletada),gm92342(deletada) - CVEs: CVE-2026-44650, CVE-2026-44649, CVE-2026-44648, CVE-2026-46372, CVE-2026-34522, CVE-2026-44651, CVE-2026-44652
– C2: domínios *.srv.us