
Falha crítica de injeção de SQL na REST API afeta instalações padrão das versões 6.9 e 7.0; correções 6.9.5 e 7.0.2 foram lançadas com atualizações forçadas.
| Componente | WordPress Core (REST API Batch Endpoint) |
| Vetor | Requisição HTTP não autenticada explorando confusão de rota batch e injeção de SQL |
| Impacto | Execução Remota de Código (RCE) em instalações limpas |
| Prioridade | Atualização imediata para versões 6.9.5 ou 7.0.2 |
| Versões Afetadas | 6.9.0 a 6.9.4, 7.0.0 a 7.0.1 |
| Artefatos Corrigidos | /wp-includes/rest-api/class-wp-rest-server.php, /wp-includes/class-wp-query.php, /wp-includes/rest-api.php |
Uma vulnerabilidade crítica descoberta no núcleo do WordPress, codinome wp2shell, permite que agentes de ameaça executem código remotamente em servidores vulneráveis sem necessidade de autenticação. O defeito técnico reside na implementação da REST API, especificamente em uma falha de confusão de rota batch combinada com injeção de SQL. Diferente de falhas comuns que dependem de plugins ou configurações específicas, está vulnerabilidade afeta instalações limpas e padrão do CMS, exigindo que o erro exista apenas nos arquivos principais da plataforma.
A descoberta foi atribuída a pesquisadores da Assetnote, braço de gestão de superfície de ataque da Searchlight Cyber. A falha afeta os ramos de versão 6.9 e 7.0 do WordPress. Em resposta de emergência, a equipe de segurança do WordPress lançou as versões 6.9.5 e 7.0.2 em 17 de julho de 2026, ativando um mecanismo de atualização forçada para acelerar a proteção da base de usuários. Cabe ressaltar que, até o momento da divulgação, nenhum identificador CVE foi atribuído oficialmente, o que dificulta a triagem automatizada em ferramentas de inventário dependentes dessa numeração.
O vetor de ataque explora o endpoint de processamento em lote (batch) da REST API, um recurso presente desde a versão 5.6 do WordPress, lançada em novembro de 2020. A função legítima deste endpoint é permitir que clientes otimizem tráfego de rede, bundling múltiplas requisições HTTP em uma única chamada. A vulnerabilidade surge de uma falha na validação ou roteamento dessas requisições em lote, permitindo que um atacante anônimo manipule a estrutura da consulta para injetar comandos SQL maliciosos. A progressão do ataque vai da injeção de SQL para a Execução Remota de Código (RCE), transformando o servidor de banco de dados em um ponto de pivô para execução de comandos no sistema operacional.
A análise das correções aplicadas nos arquivos class-wp-rest-server.php, class-wp-query.php e rest-api.php indica que o problema estava intimamente ligado a como a consulta principal (WP_Query) era construída e como o servidor REST despachava essas requisições. O termo "confusão de rota" sugere que o aplicativo interpretava incorretamente o escopo de privilégios ou o contexto de execução de requisições batch, tratando chamadas não autenticadas com o mesmo nível de acesso permitido a processamentos internos seguros. O fato de o defeito só ter surgido na versão 6.9, lançada em dezembro de 2025, aponta para uma regressão introduzida em modificações recentes do núcleo, visto que o batch endpoint existe há anos sem esse problema.
A superfície de ataque é extremamente ampla devido à prevalência do WordPress. Estima-se que mais de 500 milhões de sites utilizem a plataforma, embora a população vulnerável seja restrita às versões mais recentes que introduziram a regressão. Especificamente, todas as instalações executando as versões 6.9.0 a 6.9.4 e 7.0.0 a 7.0.1 estão sob risco imediato. Sites que ainda rodam a versão 6.8 não são afetados por este bug específico (embora possuam outras correções pendentes), e a versão 7.1 beta2 já incorpora o patch.
A gravidade é elevada pelo fato de a exploração não depender de interação do usuário, permissões especiais ou plugins instalados. Uma instalação bare metal, recém-instalada e com configurações padrão é totalmente explorável. Os estragos potenciais incluem a tomada total do servidor web, instalação de webshells, roubo de credenciais de banco de dados e uso do servidor comprometido como pivô para ataques a outros ativos na rede interna. Embora não haja relatos confirmados de exploração ativa na natureza até o momento, a ausência de assinaturas públicas e a facilidade de engenharia reversa dos patches indicam que o tempo para o desenvolvimento de exploits será curto.
- Instalações WordPress 6.9.0 – 6.9.4
- Instalações WordPress 7.0.0 – 7.0.1
- Endpoint REST
/wp-json/batch/v1 - Parâmetro de rota
rest_route=/batch/v1
Na ausência de um CVE, a detecção deve basear-se estritamente na análise de versão e comportamento de tráfego. Equipes de segurança devem auditar imediatamente a versão do WordPress em todos os ativos expostos, evitando confiar cegamente no sucesso de atualizações automáticas. É recomendado verificar os cabeçalhos HTTP responsivos ou consultar arquivos de versão no sistema de arquivos (wp-includes/version.php). No nível de rede, o foco deve ser o endpoint de batch.
Administradores devem procurar por requisições POST não autenticadas direcionadas aos caminhos /wp-json/batch/v1 ou aquelas que contêm o argumento rest_route=/batch/v1. Como o endpoint legítimo é utilizado por editores Gutenberg e aplicações de interface, a telemetria deve diferenciar tráfego legítimo (geralmente autenticado com cookies de sessão ou Nonces) de tentativas anônimas. Anomalias no processo de banco de dados, como erros de sintaxe SQL repentinos ou consultas com estrutura inesperada provenientes do processo web server, também podem ser indicativos de tentativas de exploração da injeção SQL subjacente.
- Auditoria de versão para identificar 6.9.x e 7.0.x
- Monitoramento de logs de acesso por requisições para
/wp-json/batch/v1 - Verificação de tentativas de injeção SQL em logs de erro do banco de dados
- Uso de ferramentas de verificação externa (como a disponibilizada pela pesquisadora) para validação imediata
A mitigação primária e definitiva é a aplicação do patch de segurança, atualizando o núcleo do WordPress para as versões 6.9.5 ou 7.0.2. Devido à gravidade, a equipe principal implementou atualizações forçadas, mas administradores devem validar manualmente se a atualização foi bem-sucedida, especialmente em ambientes onde atualizações automáticas podem ter sido desabilitadas por política. Para situações onde a atualização imediata não é viável, controles de bloqueio na perimetria são essenciais.
Recomenda-se configurar o Web Application Firewall (WAF) para bloquear explicitamente o acesso aos endpoints de batch. É crucial bloquear tanto o caminho deFriendly URL (/wp-json/batch/v1) quanto o método de roteamento por query string (rest_route=/batch/v1), pois regras que focam apenas no primeiro padrão deixam uma brecha aberta. Como solução de contenção mais drástica, a desabilitação completa da REST API para usuários não autenticados elimina o vetor, embora possa quebrar a funcionalidade do editor de bloco e outros frontends. Alternativamente, a instalação de um plugin "drop-in" que intercepta e rejeita requisições anônimas para o endpoint pre_dispatch pode restaurar a segurança sem quebrar toda a API.
- Atualizar imediatamente para WordPress 6.9.5 ou 7.0.2
- Bloqueio no WAF de
/wp-json/batch/v1erest_route=/batch/v1 - Implementação de plugin drop-in para filtrar acessos anônimos ao endpoint
- Restrição de acesso à REST API via arquivo
.htaccessou configurações de servidor
0 Comentários