
Verificação de hardening offline e somente leitura para uma instalação auto-hospedada do OpenClaw — exposição do gateway, autenticação, CVE-2026-25253. Nunca imprime segredos e não faz chamadas de rede.
Este script apenas lê. Não corrige nada e não garante que você está seguro. A saída verde significa apenas que as verificações listadas abaixo passaram—e nada mais.
openclaw-hardening-check.mjs é um pequeno script de revisão offline, sem dependências, de uma instalação do OpenClaw. Ele lê a configuração local, metadados de pacotes, manifestos de plugins e skills, modos de arquivo e—no Linux—as entradas do Gateway em execução em /proc. Ele não altera arquivos, não executa comandos do OpenClaw, não contata um registro nem faz qualquer requisição de rede.
gateway.bind é somente loopback, não loopback ou dependente do tempo de execução. Um bind não definido ou auto dentro de um contêiner Docker, Podman, Kubernetes ou Fly detectado é tratado como 0.0.0.0, correspondendo ao padrão de contêiner do OpenClaw. Um Gateway Linux em execução é verificado separadamente para que uma substituição por linha de comando ou serviço não possa se esconder atrás de um valor de configuração seguro.gateway.auth.token.password${VAR}$VARsecretref-env:VAR__env__:VARgateway.systemd.env.env2026.1.29 como afetadas. A vulnerabilidade permitia que um gatewayUrl na query string acionasse uma conexão WebSocket que divulgava o token do Gateway. Consulte a entrada NVD e o aviso do OpenClaw.latest, beta ou main quando a procedência da instalação é fornecida. O npm e o pnpm não retêm a dist-tag originalmente solicitada no pacote instalado, portanto o script informa “não é possível verificar” em vez de adivinhar quando essa procedência está ausente..env, gateway.systemd.env, arquivos auth-profiles.json descobertos e SecretRefs de arquivo resolvidos quanto a exposição para grupo/todos ou propriedade inesperada.dist-runtime/extensions—separadamente dos itens encontrados em locais de estado, diretório de configuração, gerenciados, workspace, pessoais, configurados ou de projeto npm. Itens não empacotados são marcados para revisão manual, nunca rotulados como maliciosos./proc/net/tcp* de volta para os processos do arquivo de entrada ou do binário do Gateway e sinaliza cada listener TCP não loopback que eles possuem. Um listener na porta esperada cujo proprietário não pode ser verificado produz “não é possível verificar”, não “o Gateway não está em execução”. A verificação ainda funciona a partir do disco quando o Gateway está parado.Os caminhos e padrões seguem a documentação oficial de configuração, a referência de configuração, o runbook de exposição do Gateway, a documentação de skills e a documentação de gerenciamento de plugins.
Copie o script para a máquina que executa o OpenClaw e execute-o como o mesmo usuário do sistema operacional:
node openclaw-hardening-check.mjs
A configuração padrão do OpenClaw é ~/.openclaw/openclaw.json. O script também respeita OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR e OPENCLAW_GATEWAY_PORT.
Substituições opcionais estão disponíveis para layouts não padrão e verificações de pin reproduzíveis:
node openclaw-hardening-check.mjs \
--config /srv/openclaw/openclaw.json \
--state-dir /srv/openclaw \
--package-root /opt/openclaw/lib/node_modules/openclaw \
--install-spec 2026.6.10
--install-spec deve ser o alvo originalmente usado pelo instalador ou pela definição de implantação. Informar a versão atualmente instalada sem verificar essa procedência não prova que a implantação está fixada.
O verificador nunca emite o segredo em si, portanto a forma publicável registra apenas sua origem e comprimento:
OpenClaw hardening check
Read-only and offline. Secret values are never printed.
Config: ~/.openclaw/openclaw.json
[PASS] Config: loaded ~/.openclaw/openclaw.json without printing its contents.
[PASS] Gateway bind: loopback; configured for local-only access.
[PASS] Gateway authentication: present via Gateway process environment bootstrap, length 48; value was not printed.
[PASS] Listening sockets: OpenClaw TCP listeners are loopback-only: 127.0.0.1:18789, [::1]:18789.
[PASS] CVE-2026-25253: installed package version 2026.6.10 is at or newer than 2026.1.29.
[PASS] Installation pin: exact target 2026.6.10 is recorded for this check.
[WARN] Third-party plugins: 1: example-plugin. Review it yourself; no malware verdict was attempted.
Summary: No security problems found. 1 item flagged for your review; exit code 0.
Valor do segredo: [REDACTED — never present in output].
O resumo conta problemas de segurança (FAIL), itens de revisão manual (WARN) e verificações incompletas (CANNOT CHECK) separadamente. Resultados WARN e CANNOT CHECK sozinhos não fazem o processo falhar; apenas um FAIL retorna o código de saída 1.
| Código | Significado |
|---|---|
0 | Nenhum problema de segurança FAIL foi encontrado; resultados WARN ou CANNOT CHECK ainda podem estar presentes. |
1 | Pelo menos um problema de segurança FAIL precisa de atenção. |
2 | A linha de comando é inválida, ou a configuração não pôde ser encontrada, lida, incluída ou analisada com segurança. |
/proc do Linux. Outras plataformas recebem um resultado explícito “não é possível verificar”.@latest. Forneça procedência confiável de implantação com --install-spec.A suíte de testes usa apenas node:test e diretórios temporários:
node --test test/openclaw-hardening-check.test.mjs
Ilya Prudnikov — cain-ai.com