
Plugin WordPress temporário que exige autenticação para o endpoint Core REST Batch API para mitigar a cadeia de vulnerabilidade wp2shell (CVE-2026-63030). Inclui log de auditoria opcional e página de configurações.
Uma mitigação temporária e focada para acesso não autenticado ao endpoint da API REST Batch do WordPress Core.
Plugin de Segurança Core SkelerSecurity exige autenticação antes que o WordPress processe requisições ao endpoint da API REST Batch do Core:
/wp-json/batch/v1/?rest_route=/batch/v1Ele foi projetado como um controle de defesa em profundidade de escopo restrito para a cadeia de vulnerabilidades da API REST Batch do WordPress, comumente referida como wp2shell. O plugin utiliza o filtro rest_pre_dispatch do WordPress para rejeitar requisições batch anônimas com HTTP 401 Não Autorizado, preservando o acesso para usuários autenticados do WordPress e da API REST.
[!IMPORTANT] Este plugin é uma mitigação temporária, não substitui as atualizações do WordPress Core. Aplique a versão de segurança mais recente do WordPress imediatamente e verifique se a atualização foi concluída com sucesso.
Relatórios públicos descrevem uma cadeia de vulnerabilidades crítica no WordPress Core envolvendo confusão de rota na API REST Batch (CVE-2026-63030) e um problema relacionado de injeção SQL (CVE-2026-60137). O endpoint afetado pode ser alcançado tanto no formato de permalink amigável quanto na forma de roteamento REST por query string.
Versões do Core reportadas como afetadas incluem:
| Ramo | Versões afetadas | Versão corrigida |
|---|---|---|
| WordPress 6.9 | 6.9.0–6.9.4 | 6.9.5 |
| WordPress 7.0 | 7.0.0–7.0.1 | 7.0.2 |
O ramo WordPress 6.8 também recebeu hardening relacionado na versão 6.8.6. Utilize a versão mais recente suportada do WordPress para seu ambiente, em vez de tratar as faixas de versão como motivo para adiar a atualização.
/batch/v1./wp-json/batch/v1 quanto ?rest_route=/batch/v1, pois o WordPress resolve ambas para a mesma rota REST.401 para requisições anônimas.rest_pre_dispatch prioridade -1000).Para uma cobertura temporária mais forte, combine este plugin com uma regra de WAF ou proxy reverso que bloqueie requisições anônimas para ambas as formas de endpoint listadas acima.
Copie o diretório skelersecurity-core-security para:
wp-content/plugins/
Ative o plugin em Plugins → Plugins Instalados.
Verifique o status do plugin em Ferramentas → SkelerSecurity Core.
wp plugin activate skelersecurity-core-security
O plugin é ativado imediatamente após a ativação. Visite Ferramentas → SkelerSecurity Core para gerenciar:
| Configuração | Padrão | Descrição |
|---|---|---|
| Proteção da API Batch | Ativado | Exige autenticação para a rota da API REST Batch do Core. |
O registro de auditoria opcional armazena apenas:
/batch/v1)Intencionalmente, não registra endereços IP, cookies, cabeçalhos de autorização, corpos de requisição, nomes de usuário ou outros dados sensíveis da requisição.
| Tipo de requisição | Resultado esperado enquanto a proteção estiver ativada |
|---|
Uma resposta bloqueada para requisição anônima usa o código de erro:
rest_batch_authentication_required
/wp-json/batch/v1rest_route=/batch/v1A API Batch pode ser usada por fluxos de trabalho administrativos do WordPress, plugins, temas, clientes móveis ou integrações externas. Requisições autenticadas permanecem permitidas, mas teste funções críticas de negócios após ativar o plugin.
Impactos potenciais podem incluir integrações que enviam intencionalmente requisições não autenticadas para a API Batch do Core. Se esse comportamento for necessário, avalie o risco cuidadosamente e implemente uma integração adequadamente autenticada, em vez de expor amplamente o endpoint.
Uma mitigação em nível de rede deve cobrir ambos os estilos de roteamento. Bloquear apenas /wp-json/batch/v1 é insuficiente, pois o WordPress também pode rotear a requisição através do parâmetro de query rest_route.
Lógica de regra recomendada:
/wp-json/batch/v1 (permitir barra final opcional).rest_route=/batch/v1.Teste a regra em seu ambiente. Este plugin é útil se uma alteração no WAF não puder ser implantada imediatamente, mas não deve impedi-lo de corrigir o WordPress Core.
Por favor, não reporte vulnerabilidades de segurança através de issues públicos do GitHub.
Relate vulnerabilidades suspeitas de forma privada ao seu contato de segurança ou ao proprietário do repositório. Inclua uma descrição clara, versão afetada, prova de conceito reproduzível e avaliação de impacto. Não inclua credenciais, dados pessoais ou payloads destrutivos.
Este projeto está licenciado sob a GNU General Public License v2.0 ou posterior.
| Registro de auditoria mínimo |
| Ativado |
| Registra quando uma requisição Batch anônima é bloqueada. |
| Entradas a reter | 50 | Limite de retenção para entradas de auditoria locais; configurável de 10 a 200. |
Requisição anônima para /wp-json/batch/v1 | Bloqueada com HTTP 401 |
Requisição anônima para /?rest_route=/batch/v1 | Bloqueada com HTTP 401 |
Requisição autenticada (WordPress/REST) para /batch/v1 | Permitida para processamento normal de autorização do WordPress |
| Requisição para outra rota REST | Não modificada por este plugin |