Cinco falhas de dia zero no OpenClaw permitiram que atacantes contornassem limites de confiança e sequestrassem o acesso a agentes de IA em várias plataformas de mensagens. O OpenClaw, que integra agentes de IA com serviços como Slack, Discord, Microsoft Teams, Matrix e Telegram, depende fortemente de listas de permissão definidas pelo usuário para determinar quem pode interagir com um agente.
Descoberta e escopo
Este modelo de confiança assume que apenas identidades explicitamente aprovadas podem emitir comandos a agentes que podem ter acesso a dados sensíveis, APIs internas ou capacidades de execução em nível de sistema. No entanto, Philip Garabandic descobriu que esse modelo de confiança falha devido à resolução de identidade inadequada durante o processamento da lista de permissão.
As vulnerabilidades decorrem de uma falha de design recorrente na qual identificadores legíveis por humanos, como nomes de exibição, são resolvidos para IDs de usuário estáveis durante a inicialização do serviço. Como os nomes de exibição são mutáveis na maioria das plataformas de chat, os atacantes podem se passar por usuários confiáveis simplesmente renomeando-se para corresponder a uma identidade na lista de permissão.
Esta questão foi inicialmente identificada na integração do Telegram do OpenClaw e corrigida sob o advisory GHSA-mj5r-hh7j-4gxf. Apesar da correção, a mesma causa raiz persistiu em cinco extensões de canal adicionais, especificamente Slack, Discord, Matrix, Zalo e Microsoft Teams.
Vetor e exploração
Cada implementação reintroduziu independentemente o mesmo padrão inseguro, destacando um problema mais amplo no desenvolvimento distribuído e na aplicação inconsistente de segurança. No núcleo da vulnerabilidade está um processo de resolução de inicialização falho. Embora as verificações de tempo de execução normalmente validem IDs de usuário estáveis, a lógica de inicialização resolve entradas da lista de permissão por meio de consultas de diretório com base em campos mutáveis como displayName ou username.
Se um atacante alterar seu nome de exibição para corresponder a um usuário na lista de permissão antes de uma reinicialização do serviço, o sistema pode vincular incorretamente o ID do atacante à lista de permissão confiada. Uma vez que isso ocorre, o atacante ganha controle total sobre as interações do agente enquanto o usuário legítimo é excluído silenciosamente.
Impacto e alcance
As vulnerabilidades foram identificadas usando uma ferramenta de análise estática especializada orientada por IA chamada agentgg, que gera detectores personalizados com base em advisories históricos. Ao analisar vulnerabilidades anteriores do OpenClaw, a ferramenta desenvolveu lógica de detecção direcionada para anti-padrões recorrentes, identificando finalmente uma falha replicada em vários módulos.
Cada descoberta foi reconhecida e abordada pelos mantenedores do OpenClaw, com correções que aplicam correspondência estrita baseada em ID e bloqueiam a resolução baseada em nome atrás de flags de configuração explícitas. Do ponto de vista da segurança, essa classe de vulnerabilidade alinha-se com CWE-639, que descreve o bypass de autorização através de identificadores controlados pelo usuário.
O impacto é particularmente severo em ambientes de agentes de IA, onde o acesso comprometido pode se traduzir em execução arbitrária de comandos, exfiltração de dados ou movimento lateral dentro de sistemas integrados.
Medidas de mitigação recomendadas
Organizações devem auditar suas integrações de agentes de IA para garantir que a validação de identidade seja baseada em IDs estáveis e não em nomes mutáveis. A implementação de verificações de consistência de identidade durante a inicialização do serviço é crítica. Além disso, a revisão de logs de acesso e a limitação de privilégios para agentes de IA podem reduzir o impacto de explorações futuras.
Perguntas frequentes
- Quais plataformas são afetadas? Slack, Discord, Microsoft Teams, Matrix, Zalo e Telegram.
- Qual é a causa raiz? Resolução de identidade baseada em nomes mutáveis durante a inicialização.
- Como corrigir? Atualize para versões corrigidas e valide IDs de usuário em vez de nomes.