Wp2shell: falha crítica no wordpress permite Rce sem login e como se proteger

7 минут чтения

wp2shell: falha crítica no núcleo do WordPress permite RCE sem autenticação em milhões de sites

Uma vulnerabilidade crítica no núcleo do WordPress, apelidada de “wp2shell”, abriu a porta para execução remota de código (RCE) sem qualquer tipo de autenticação em instalações que utilizam versões recentes da plataforma. A falha, identificada por pesquisadores da Searchlight Cyber, afeta especificamente o WordPress 6.9.0 a 6.9.4 e 7.0.0 a 7.0.1, colocando em risco milhões de sites ao redor do mundo.

O ponto mais alarmante é que o ataque não exige qualquer condição prévia: um invasor anônimo pode explorar a brecha em uma instalação padrão do WordPress, mesmo sem plugins adicionais instalados ou configurações personalizadas. Em um cenário em que mais de 500 milhões de sites dependem do WordPress, o impacto potencial é massivo.

Como a falha wp2shell funciona

Segundo a descrição da Searchlight Cyber, a exploração da wp2shell não é resultado de um único bug, mas sim do encadeamento de duas vulnerabilidades independentes que, combinadas, permitem RCE antes de qualquer autenticação:

1. CVE-2026-63030 – Falha de confusão de rota em lote na API REST
Introduzida a partir da versão 6.9, essa falha está ligada ao recurso de requisições em lote da API REST. Um atacante consegue manipular a forma como as rotas são processadas, burlando validações de permissão ou atingindo endpoints que, em teoria, deveriam estar protegidos.

2. CVE-2026-60137 – Injeção SQL no parâmetro `author__not_in` do `WP_Query`
Presente a partir do WordPress 6.8, essa vulnerabilidade permite que dados maliciosos injetados no parâmetro `author__not_in` sejam enviados diretamente para o banco de dados sem a devida sanitização. Isso abre espaço para manipular consultas SQL, extraindo informações sensíveis ou preparando terreno para ações mais destrutivas, como a própria RCE.

A combinação dessas duas falhas afeta, de forma completa, apenas as linhas 6.9.x e 7.0.x do WordPress, justamente porque a vulnerabilidade na API REST só passou a existir a partir da versão 6.9. Em outras palavras, a injeção SQL por si só já é preocupante, mas é a presença simultânea da falha na API que torna possível o cenário de execução remota de código sem autenticação.

O que a RCE permite na prática

Quando um invasor consegue execução remota de código no servidor, ele basicamente passa a ter a capacidade de rodar comandos como se fosse um usuário com acesso direto à máquina. Isso pode incluir:

– Envio e execução de webshells para manter acesso persistente;
– Criação de novos usuários administrativos no WordPress;
– Modificação de temas e plugins para inclusão de backdoors;
– Roubo de credenciais, dados pessoais e informações de pagamento;
– Utilização do servidor comprometido em campanhas de spam, phishing ou ataques a outros sistemas.

Em ambientes de hospedagem compartilhada, o risco é ainda maior, pois um comprometimento pode servir de ponte para tentar atacar outros sites no mesmo servidor.

Versões afetadas em detalhes

De forma resumida, o cenário fica assim:

CVE-2026-60137 (SQL Injection em `author__not_in`)
– Afeta: WordPress 6.8 e versões posteriores.
CVE-2026-63030 (confusão de rota em lote na API REST)
– Introduzida no WordPress 6.9.
Cadeia completa de ataque wp2shell (RCE sem autenticação)
– Afeta: WordPress 6.9.0 a 6.9.4 e 7.0.0 a 7.0.1.

Instalações em versões anteriores a 6.8 não têm a falha específica no parâmetro `author__not_in`, mas isso não significa que estejam “seguras” no sentido amplo: apenas não são vulneráveis a essa cadeia exata de ataque. Manter versões antigas é, em si, um grande risco de segurança por outros motivos.

Recomendações de correção imediata

A medida mais importante para mitigar a falha wp2shell é a atualização do WordPress para uma versão corrigida. A orientação é clara:

Atualizar para WordPress 7.0.2 ou superior, ou
Atualizar para WordPress 6.9.5 na linha 6.9, caso não seja possível migrar para 7.x imediatamente.

Essas versões trazem correções tanto para a vulnerabilidade da API REST quanto para a injeção SQL em `author__not_in`, interrompendo a cadeia de ataque que possibilita o RCE.

Antes de atualizar, é essencial:

– Fazer um backup completo (arquivos + banco de dados);
– Verificar compatibilidade de temas e plugins;
– Testar a atualização em ambiente de homologação, se possível, para evitar indisponibilidades em produção.

Medidas temporárias de contenção

Para administradores que, por questões técnicas ou de negócio, não conseguem aplicar a atualização de imediato, a Searchlight Cyber sugere medidas emergenciais:

Bloquear acesso anônimo à API REST
É possível restringir o uso da API REST a usuários autenticados ou a determinados IPs, por meio de plugins de segurança ou regras customizadas.

Bloquear rotas específicas da API REST
Bloquear o acesso aos caminhos `/wp-json/batch/v1` e `?rest_route=/batch/v1` no nível de WAF ou servidor web reduz a superfície de ataque ligada à falha de confusão de rota em lote.

No entanto, essas medidas podem afetar funcionalidades legítimas do site, como integrações com aplicações externas, plugins que usam intensivamente a API REST ou recursos de headless WordPress. Por isso, devem ser vistas como paliativos, não como solução definitiva.

Como verificar se o site está vulnerável

Para facilitar a identificação de instalações vulneráveis, a Searchlight Cyber disponibilizou uma ferramenta pública chamada wp2shell, que permite checar se um site roda versões de WordPress afetadas e se determinados vetores de ataque estão expostos.

Embora os detalhes técnicos completos da exploração não tenham sido divulgados para evitar ataques em massa antes da correção, a ferramenta se propõe a:

– Identificar a versão exata do WordPress;
– Verificar a presença de rotas críticas da API REST;
– Checar parâmetros vulneráveis associados ao `WP_Query`.

Administradores podem utilizar essa verificação como complemento à própria auditoria interna, validando se suas medidas de proteção foram aplicadas corretamente.

Como saber se o seu site já foi comprometido

Além de atualizar e bloquear rotas, é importante verificar se algum invasor já explorou a falha. Alguns sinais comuns de comprometimento:

– Presença de arquivos estranhos em diretórios como `wp-content/uploads`, `wp-includes` ou na raiz do site;
– Modificações não autorizadas em arquivos de tema (`functions.php`, `header.php`, etc.) ou de plugins;
– Usuários administrativos desconhecidos no painel;
– Redirecionamentos inesperados, páginas de spam ou conteúdo injetado;
– Aumento repentino e não explicado no uso de CPU, memória ou tráfego de rede.

Ferramentas de varredura de malware específicas para WordPress podem ajudar a identificar alterações maliciosas em arquivos e no banco de dados.

Boas práticas de hardening para WordPress

A falha wp2shell reforça a necessidade de tratar WordPress como um sistema crítico de informação, não apenas como uma ferramenta de blog ou site institucional. Além da atualização, é recomendável:

Ativar atualizações automáticas para versões de segurança;
Usar plugins de segurança com firewall de aplicação, detecção de anomalias e limitação de tentativas de login;
Restringir acesso ao painel administrativo por IP ou VPN;
Utilizar senhas fortes e autenticação em dois fatores para contas administrativas;
Separar o usuário do banco de dados com permissões mínimas necessárias;
– Manter backup automatizado e testado regularmente;
– Monitorar logs de acessos e erros do servidor e do próprio WordPress.

Essas medidas não impedem que vulnerabilidades futuras sejam descobertas, mas reduzem drasticamente o impacto de um possível comprometimento.

Resposta a incidentes: o que fazer se você suspeita de invasão

Caso haja suspeita de que a wp2shell (ou qualquer outra falha) já tenha sido explorada:

1. Isolar o ambiente
– Se possível, colocar o site em modo de manutenção ou restringir o acesso temporariamente.

2. Preservar evidências
– Fazer cópia dos arquivos e do banco de dados antes de qualquer limpeza, para análise posterior.

3. Atualizar imediatamente
– Aplicar os patches de segurança do WordPress e de todos os plugins e temas.

4. Varredura completa
– Utilizar ferramentas de segurança para identificar webshells, scripts maliciosos e alterações suspeitas.

5. Alterar todas as credenciais
– Senhas de painel, FTP/SSH, banco de dados, painel de hospedagem e, se necessário, chaves de API de integrações externas.

6. Revisar logs e ajustar defesas
– Analisar como o ataque entrou, ajustar WAF, regras de firewall e endurecer a configuração do servidor.

Por que detalhes técnicos foram retidos

A decisão da Searchlight Cyber de não divulgar, neste momento, todos os detalhes técnicos da exploração da wp2shell segue uma prática comum em segurança: o chamado “divulgamento responsável”. O objetivo é dar tempo para que administradores:

– Apliquem as atualizações de segurança;
– Implementem medidas de contenção;
– Verifiquem possíveis indícios de comprometimento.

Somente após uma janela razoável de correção é que detalhes mais profundos costumam ser liberados, inclusive para uso da comunidade de pesquisa em segurança na criação de novas defesas.

Em resumo

A vulnerabilidade wp2shell expõe um ponto sensível do ecossistema WordPress: mesmo instalações “puras”, sem plugins, podem estar sujeitas a falhas graves no próprio núcleo. A única forma segura de mitigar o risco é:

– Atualizar o WordPress para versões corrigidas (7.0.2 ou 6.9.5 em diante);
– Adotar, quando necessário, bloqueios temporários na API REST;
– Utilizar ferramentas de verificação e monitoramento;
– Reforçar práticas permanentes de segurança e resposta a incidentes.

Ignorar a atualização ou depender apenas de paliativos aumenta significativamente a chance de que um ataque remoto transforme o seu site em um ponto de partida para fraudes, roubo de dados ou novas campanhas maliciosas.