
CVE-2026-65891 PoC — Vulnerabilidade de renomeação de arquivos no editor de conteúdo do Joomla (autenticação necessária, corrigida no JCE 2.20.2)
Scanner de prova de conceito para CVE-2026-65891 na extensão Joomla Content Editor (JCE).
A validação inadequada de entrada na função rename do gerenciador de arquivos do JCE permite que um usuário autenticado com permissões de gerenciamento de arquivos:
.shell.php)Somente testes autorizados. Use em sistemas que você possua ou para os quais tenha permissão explícita para testar.
| Campo | Valor |
|---|
| CVE | CVE-2026-65891 |
| Produto | JCE (com_jce) — Widget Factory Limited |
| Afetado | JCE < 2.20.2 (até 2.20.1 / 2.9.99.9) |
| Corrigido | JCE 2.20.2+ (2026-07-29) |
| CVSS 3.1 | 6.5 Média |
| CWE | CWE-20 — Validação de Entrada Incorreta |
| Autenticação | Necessária — permissões de upload + rename do JCE |
| KEV | Não |
Isto não é RCE sem autenticação. Não confunda com CVE-2026-48907 (importação de perfil do JCE, sem autenticação).
Os manipuladores de rename browser / imgmanager do JCE aceitavam nomes de arquivo de destino que deveriam ser rejeitados:
. (ocultos no POSIX)Corrigido no 2.20.2: validação de extensão em rename/copy/move e sem sobrescrita silenciosa.
check (sem credenciais)jce.xml / assetsprobe / exploit (credenciais necessárias)/administrator/ (ou --frontend-login).txt marcador via plugin.rpc (plugin browser).cve65891_<random>.txt (oculto)GET /images/.cve65891_*.txt — se o marcador estiver legível → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
Requisitos: Python 3.10+
# Version / fingerprint scan (bulk, no auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Single target — full check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authenticated rename test
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session cookie instead of password
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
| Flag | Descrição |
|---|---|
-u, --url | URL base única do Joomla |
-f, --file | Lista de alvos (uma URL por linha) |
-m, --mode | check · probe · exploit · full (padrão: full) |
-j, --threads | Workers paralelos (padrão: 15) |
-t, --timeout | Timeout HTTP em segundos (padrão: 25) |
-o, --output | Gravar apenas ocorrências VULNERABLE / EXPLOITED |
--user | Nome de usuário do Joomla |
--pass | Senha do Joomla |
--cookie-file | Arquivo com o cabeçalho Cookie: bruto (ignorar login) |
--upload-dir | Diretório de upload do JCE (padrão: images) |
--frontend-login | Autenticar via frontend em vez do administrator |
-v, --verbose | Saída de depuração |
| Modo | Autenticação | Descrição |
|---|---|---|
check | Não | Joomla + JCE + versão |
probe | Sim | Upload + rename oculto + verificação |
exploit | Sim | Igual ao probe |
full | Sim* | check e depois probe (*probe precisa de autenticação) |
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
Apenas as linhas VULNERABLE e EXPLOITED são gravadas em -o.
A conta de teste deve ter um perfil do editor JCE com:
Geralmente: Editor, Gerente ou Administrador — não um usuário registrado comum.
Atualize o JCE para 2.20.2 ou posterior
Extensions → Manage → Update ou baixe de joomlacontenteditor.net
Até a correção: desabilite Rename nas configurações do perfil JCE para grupos de usuários não confiáveis (Gerenciador de imagens, Navegador de arquivos).
Procure por requisições autenticadas para:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
Com method=rename / renameItem e nomes de destino começando com ..
Arquivos ocultos inesperados nos caminhos de upload do JCE (/images/, /media/).
Esta ferramenta destina-se apenas a pesquisa de segurança, educação e testes de penetração autorizados. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade por uso indevido.
MIT — veja LICENSE.