
Upload de arquivo não autenticado → PoC de RCE para CVE-2026-57827 (RSFiles! Joomla < 1.17.12). Uso autorizado apenas para pesquisa de segurança.
Aviso legal — uso apenas autorizado. Este é um prova de conceito para pesquisa de segurança e testes defensivos. Você é responsável por usá-lo apenas em sistemas que você possui ou para os quais tem permissão explícita por escrito para testar. O uso indevido contra terceiros sem consentimento é ilegal. Consulte SECURITY.md para a postura de divulgação responsável.
Exploit + detector independente para CVE-2026-57827 no componente RSFiles!
(com_rsfiles) para Joomla, versões < 1.17.12 (corrigido na
1.17.12, CVSS 9.8 / 10.0).
O upload do frontend é dividido em duas tarefas:
rsfiles.checkupload — verificação prévia (permissão + lista de permissões de extensões)rsfiles.upload — método de escrita (sem verificação de permissão, sem verificação de tipo de arquivo, sem CSRF)A tarefa de escrita pode ser chamada diretamente, ignorando a verificação prévia, o que
permite que um atacante não autenticado envie um arquivo .php executável para uma pasta
pública e o execute → RCE não autenticado.
| Arquivo | Finalidade |
|---|---|
cve_2026_57827.py | Exploit + scanner + CLI (ponto de entrada) |
rsfiles_detect.py | Módulo de detecção independente (sem exploit) — também possui sua própria CLI |
payload.py | Construtor de payload PHP modular e compacto |
common.py | Cliente HTTP, configuração e utilitários compartilhados |
mock_server.py | Simulação local segura para testes |
Todos os módulos devem estar no mesmo diretório (eles importam uns aos outros).
python3 -m pip install -r requirements.txt # or just: pip install requests
python rsfiles_detect.py -t example.com
Host : example.com
RSFiles! : YES v1.17.11
Protocol : https
Status : VULNERABLE (below 1.17.12)
Vários hosts:
python rsfiles_detect.py -f hosts.txt
python cve_2026_57827.py -t example.com
Em caso de sucesso, a ferramenta imprime a URL do shell com seu token aleatório e a saída do comando — essa saída é a prova da RCE.
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
| Flag | Descrição |
|---|---|
--threads N | Concorrência (padrão 30) |
--proxy URL | Roteia através de um proxy (Burp/ZAP) |
--timeout N | Tempo limite por requisição (segundos) |
--no-cleanup | Mantém o shell enviado (padrão: exclusão automática após a RCE) |
-o FILE | Salva URLs de RCE |
--csv FILE | Relatório estruturado completo |
--debug / -v | Log detalhado em nível de requisição |
# Terminal 1 — start the mock (vulnerable)
python mock_server.py 8000 1.17.11
# Terminal 2 — scan it
python rsfiles_detect.py -t 127.0.0.1:8000
python cve_2026_57827.py -t 127.0.0.1:8000
1.17.11 / 1.17.10 = vulnerável · 1.17.12 = corrigida.
payload.py): cada comportamento (verificação, upload, exec,
delete, list) é uma pequena função; os nomes das funções de execução são codificados em base64
para que nomes brutos como system não apareçam nos bytes do arquivo.cache7f31.php) em vez dos clássicos
nomes ocultos de shell com ponto.common.base_of().Estilo modelado a partir de coleções públicas de exploits para componentes Joomla (ex.:
incredibleindishell/joomla-vulnerabilities) e dos artigos de advisory da RSJoomla/mysites.guru
para este CVE.
MIT — consulte LICENSE. Uso apenas para pesquisa/defesa.