
Exploit de prova de conceito para CVE-2026-63030 (RCE pré-autenticação no WordPress) com detecção de injeção de SQL, extração de credenciais e implantação de webshell. Inclui fluxo de exploração em 8 estágios e orientação de remediação.
📖 Leia primeiro a análise técnica completa: CVE-2026-63030: RCE Pré-Autenticação no WordPress Explicada
Este repositório contém o exploit de prova de conceito referenciado nesse artigo. Comece pelo blog para entender a vulnerabilidade, as limitações e o processo de reprodução.
| Aspecto | Detalhes |
|---|---|
| Vulnerabilidade | CVE-2026-63030 (confusão de rota) + CVE-2026-60137 (injeção de SQL) |
| Tipo | Execução Remota de Código de pré-autenticação |
| Pontuação CVSS | 9.8 (Crítica) |
| Versões Afetadas | WordPress 6.9.0–6.9.4, 7.0.0–7.0.1 |
| Corrigido Em | WordPress 6.9.5, 7.0.2+ |
| Impacto | Mais de 500 milhões de sites WordPress potencialmente afetados |
| Pré-condições | Nenhuma — funciona em instalações WordPress padrão |
Este repositório contém:
wordpress-rest-exploit.py — Ferramenta de exploit Python em arquivo único (1.005 linhas, sem dependências)README.md — Este arquivo com configuração e usoPOC.md — Guia detalhado de reprodução passo a passo com exemplos reaisLICENSE — Licença MITAntes de usar este exploit, entenda a limitação crítica que torna esta vulnerabilidade diferente de como ela tem sido reportada:
A cadeia de vulnerabilidades é real e crítica. No entanto:
Por quê? O WordPress permite prefixos personalizados para tabelas do banco de dados. O padrão é wp_, mas a maioria dos sites com hardening de segurança usa bw1w_, wordpress_ ou strings aleatórias. Sem saber o prefixo, a extração de hashes falha silenciosamente.
O artigo do blog explica:
./wordpress-rest-exploit.py
A ferramenta irá guiá-lo por:
CVE-2026-63030: WordPress REST Batch Route-Confusion SQLi
------------------------------------------------------------
Target URL: https://example.com/
[*] Checking if target is vulnerable to CVE-2026-63030...
[+] WordPress 7.0 detected (AFFECTED VERSION)
[+] VULNERABLE - batch route-confusion behavior confirmed
What would you like to do?
1) Read database fingerprint
2) Extract WordPress user logins and password hashes
3) Execute custom SQL query
4) Deploy plugin webshell (requires admin credentials)
5) Confirm SQL injection with timing payload
6) Exit
Select option [1]:
Isto é essencial para entender antes de usar o exploit.
O WordPress permite prefixos personalizados de tabelas do banco de dados para hardening de segurança. A ferramenta de exploit não consegue detectar o prefixo automaticamente.
✅ Default prefix (wp_): Exploitation works
❌ Custom prefix (bw1w_, etc.): Exploitation fails silently
Quando a ferramenta perguntar o prefixo da tabela:
Opção 1: Você Sabe o Prefixo
Database table prefix [wp_]: bw1w_
[+] Querying bw1w_users...
[+] Found credentials!
Opção 2: Adivinhar Prefixos Comuns
wp_ (padrão)wordpress_bw1w_ (hardening popular)wpdb_Opção 3: Acesso Direto
Se você tiver acesso SSH ou puder ler o wp-config.php:
$table_prefix = 'bw1w_'; // Found it!
Opção 4: Força Bruta via SQLi A ferramenta pode tentar prefixos comuns por meio de injeção de SQL cega (lento, mas possível).
SLEEP(3)wp_users (ou prefixo personalizado)Para reprodução detalhada com saída real de comandos e exemplos, veja:
👉 POC.md — Guia completo das 8 etapas
Este guia inclui:
Atualize imediatamente (prioridade máxima):
# Update to patched versions
WordPress 7.0.2 or 6.9.5
Se a atualização imediata for impossível:
Bloqueie o endpoint de batch no WAF/proxy reverso:
Block: /wp-json/batch/v1
Block: /?rest_route=/batch/v1
Ou desabilite a API REST por completo (menos ideal):
// Add to wp-config.php or mu-plugins
add_filter('rest_endpoints_enabled', '__return_false');