
Prova de conceito em Python para CVE-2026-93300, uma injeção SQL não autenticada no plugin WordPress EventON Subscriber; identifica o manipulador AJAX e extrai dados do banco de dados por meio de oráculos baseados em tempo.
Prova de conceito em Python para CVE-2026-93300: injeção SQL não autenticada através do parâmetro email no plugin WordPress EventON - Subscriber (Wordfence, CVSS 7.5 Alto).
| CVE | CVE-2026-93300 |
| Plugin | EventON - Subscriber (eventon-subscriber) |
| Afetado | todas as versões ≤ 1.4.5 |
| Versão corrigida | nenhuma publicada (a partir de 2026-10) |
| Vetor | POST /wp-admin/admin-ajax.php, action=evosub_new_subscriber, parâmetro email |
| Autenticação | nenhuma (não autenticado) |
| CWE | CWE-89 Injeção SQL |
O manipulador AJAX do formulário de subscrição (evosub_new_subscriber, registado com wp_ajax_nopriv_, acessível a partir do formulário público do front-end em assets/evosub_script.js) constrói uma consulta SQL existente usando o valor email fornecido pelo utilizador sem $wpdb->prepare() / escape adequado. O valor chega à consulta sem escape, pelo que um atacante pode sair do literal de string e acrescentar/modificar a consulta para ler dados arbitrários da base de dados.
A regex de email do lado do cliente em evosub_script.js é a única verificação de formato no navegador; não fornece qualquer proteção do lado do servidor.
# 1. Detect only (fingerprint handler, find working injection oracle)
python3 cve_2026_93300.py --url https://target.example --mode check
# 2. Dump wp_users (login / email / password hash)
python3 cve_2026_93300.py --url https://target.example --mode users --prefix wp_
# 3. Extract any scalar query result
python3 cve_2026_93300.py --url https://target.example --mode sql \
--sql "SELECT option_value FROM wp_options WHERE option_name='admin_email'"
| Opção | Padrão | Descrição |
|---|---|---|
--mode | check | check / users / sql |
--action | evosub_new_subscriber | ação AJAX a testar |
--param | email | parâmetro injetado |
--prefix | wp_ | prefixo de tabela do WordPress |
--sql | — | SELECT escalar para --mode sql |
--delay | 2.0 | segundos de SLEEP() para o oráculo baseado em tempo |
--timeout | 25 | timeout HTTP |
--max-id | 15 | maior ID de usuário a escanear |
--proxy / --insecure / --ua | — | proxy HTTP / ignorar verificação TLS / UA personalizado |
action=evosub_new_subscriber com uma ação não registrada (0 / HTTP 400) para confirmar que o handler está presente e ativo.', ", \) → se os erros SQL forem refletidos (WP_DEBUG), é usado um oráculo baseado em erro (mais rápido, uma requisição por bit);SLEEP() → oráculo union-time (uma avaliação por sondagem, sem desaceleração por linha);;SELECT SLEEP(...)) → oráculo stacked-time se o driver permitir múltiplos statements;OR/AND/paren/concat SLEEP) → oráculo template-time como fallback.1=1 → verdadeiro e 1=0 → falso (repetidamente) antes de iniciar a extração, o que filtra falsos positivos de alvos lentos/instáveis.LENGTH() e ASCII(SUBSTRING(...)) (7 requisições por caractere).--mode check termina com uma extração de sanidade de user_login@USER() para comprovar o acesso aos dados.
poc*@example.invalid no post type evo-subscriber; elas ficam visíveis em Events → All Subscribers e podem ser movidas para a lixeira.email no lado do servidor com um filtro estrito, todas as sondagens se comportam de forma idêntica e a ferramenta reporta não vulnerável / entrada validada.admin-ajax.php quebrado (erro fatal na linha de base) são reportados como não saudáveis e a execução é abortada.SELECT (contexto INSERT/UPDATE) são detectados, mas podem não ter um oráculo de tempo funcional.--delay ≥ 1.0 em alvos reais; atrasos muito pequenos produzem falsos negativos em links de alta latência.email (e toda entrada de requisição) com $wpdb->prepare() / esc_sql(); valide com is_email() no lado do servidor.admin-ajax.php cujo valor de email contenha metacaracteres SQL (', ", \, --, ;, UNION).Apenas para testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. Você é responsável por cumprir todas as leis aplicáveis.