
Verificador de exposição não intrusivo para a cadeia RCE de pré-autenticação wp2shell do WordPress (CVE-2026-63030 / CVE-2026-60137).
Verificador de exposição não intrusivo para a cadeia RCE de pré-autenticação "wp2shell" do WordPress (CVE-2026-63030 + CVE-2026-60137).
⚠️ Uso autorizado apenas. Execute isto apenas contra instâncias do WordPress que você possui ou tem permissão explícita para testar. É uma ajuda de triagem, não um exploit. Escanear sistemas sem permissão pode ser ilegal.
Dada uma URL, wp2shell-check:
generator na página inicial (passivo).?rest_route=/batch/v1) para verificar se a rota batch REST está acessível.Foi projetado para triagem rápida de frota: quais dos meus sites estão em uma versão afetada com REST acessível?
Duas falhas encadeadas do WordPress Core, divulgadas em um lançamento de emergência em 2026-07-17:
| CVE | Tipo | Versões afetadas |
|---|---|---|
| CVE-2026-63030 | Confusão de rota batch da API REST (habilitador de RCE) | 6.9.0–6.9.4, 7.0.0–7.0.1 |
| CVE-2026-60137 | Injeção SQL WP_Query author__not_in | 6.8.0 e posteriores (6.8.0–6.8.5 = faixa apenas SQLi) |
Encadeadas, elas permitem que um atacante não autenticado alcance injeção SQL e escale para execução remota de código em uma instalação padrão — sem plugins, sem login. A metade RCE só se aplica quando um cache de objeto persistente não está em uso.
Corrigido em: 6.8.6 (apenas SQLi), 6.9.5, 7.0.2 (e 7.1 Beta 2+). O WordPress ativou atualizações automáticas forçadas para sites afetados — verifique se a atualização realmente foi aplicada.
Relatado por Adam Kues (Assetnote / Searchlight Cyber) através do programa HackerOne do WordPress.
Requer Python 3.9+ e requests.
# with uv
uv pip install requests
# or plain pip
pip install requests
python wp2shell.py https://target.example
Exemplo de saída:
https://target.example: VULNERABLE (RCE) [6.9.3]
generator é frequentemente removida ou falsificada; uma versão ausente resulta em wordpress not detected, não uma garantia de que o site é seguro ou não é WordPress./wp-json/batch/v1 e ?rest_route=/batch/v1 no seu WAF, ou restrinja o acesso anônimo à API REST.Fornecido como está, apenas para testes de segurança autorizados e fins educacionais. Você é o único responsável pelo uso que fizer dele.
| Veredito | Significado |
|---|
VULNERABLE (RCE) / VULNERABLE (SQLi) | Versão afetada e rota batch REST acessível → exposto em uma instalação padrão. Veja Limitações. |
version-affected (...), route unconfirmed | A versão está em uma faixa afetada, mas a rota batch REST não respondeu como esperado. |
not affected | WordPress detectado, versão fora das faixas afetadas. |
wordpress not detected | Nenhuma versão encontrada (REST bloqueado, tag generator removida, ou não é WordPress). |
unreachable | O host não respondeu. |