
Exploit RCE automatizado para Joomla JCE (CVE-2026-48907) com shell interativo, execução de comandos em lote, download de arquivos e suporte a proxy para testes de penetração autorizados.
Um utilitário profissional de linha de comando para testes de penetração autorizados, pesquisa controlada de vulnerabilidades e validação defensiva.
Somente uso autorizado. Execute este projeto exclusivamente contra sistemas que você possui ou para os quais tem permissão explícita de teste. Use um ambiente de laboratório controlado sempre que possível.

JCEzploit é um utilitário de pesquisa de segurança de linha de comando para avaliar a funcionalidade de importação de perfil do componente Joomla Content Editor (JCE) em ambientes onde o testador tem autorização explícita. Ele foi projetado para testadores de penetração profissionais, pesquisadores de segurança e defensores que precisam reproduzir e validar uma condição reportada de execução remota de código em um ambiente controlado.
O projeto fornece um fluxo de trabalho estruturado de linha de comando, suporte configurável a proxy, múltiplos modos de execução, saída de diagnóstico e uma interface de sessão interativa. Ele deve ser usado apenas contra alvos que pertencem ao operador ou que estejam cobertos por autorização escrita de teste.
Nota de publicação: Antes de publicar ou distribuir este README, verifique o identificador CVE do projeto, a faixa de versões afetadas, a versão corrigida, o status de divulgação e a matriz de testes em relação a um registro autoritativo do fornecedor ou de banco de dados de vulnerabilidades. Os metadados abaixo refletem as informações fornecidas do projeto e não devem ser tratados como uma confirmação independente de vulnerabilidade.
Este software pode causar acesso não autorizado, exposição de dados, interrupção de serviço ou comprometimento do sistema quando usado contra um alvo não aprovado. Os mantenedores não autorizam testes de sistemas de terceiros, infraestrutura pública ou sistemas sem permissão documentada.
Ao usar este projeto, você concorda em:
Testar apenas sistemas para os quais você tem autorização escrita explícita.
Definir e seguir um escopo aprovado, janela de tempo, limite de taxa e regras de engajamento.
Evitar acessar, modificar, exfiltrar ou reter dados desnecessários.
Interromper o teste imediatamente se a atividade arriscar interrupção de serviço ou afetar usuários não envolvidos.
Cumprir todas as leis, regulamentos, contratos e políticas organizacionais aplicáveis.
Assumir a responsabilidade pelas consequências do seu uso do software.
O autor e os colaboradores fornecem este projeto no estado em que se encontra ("as is") e não são responsáveis por uso indevido, danos, perda de dados, reivindicações legais ou outras consequências decorrentes do seu uso.
Os seguintes detalhes foram fornecidos com o projeto e exigem verificação independente antes de serem usados em um boletim de segurança ou avaliação em produção.
| Campo | Detalhe fornecido do projeto |
|---|---|
| Identificador da vulnerabilidade | CVE-2026-48907 |
| Problema reportado | Execução remota de código não autenticada |
| Versões afetadas reportadas | JCE 1.0.0 a 2.9.99.4 |
| Versão corrigida reportada | JCE 2.9.99.5 |
| Ambiente de teste fornecido | Joomla 3.10.11, JCE 2.9.15, Apache 2.4, PHP 7.4 |
| Severidade reportada | Crítica; possível comprometimento total do sistema |
Para trabalho defensivo, confirme primeiro as versões implantadas do Joomla e do JCE, obtenha autorização, crie um plano de reversão e prefira um método de validação não destrutivo sempre que possível.
O JCEzploit inclui os seguintes recursos, conforme descrito nos materiais do projeto:
| Área | Recurso |
|---|---|
| Fluxo de trabalho | Fluxo de trabalho automatizado de preparação de solicitações e validação de vulnerabilidades |
| Interface de sessão | Sessão de comandos interativa com histórico, autocompletar e saída colorida |
| Modos de execução | Modos interativo, comando único, lote, silencioso, verboso e orientado a depuração |
| Detecção | Descoberta de token CSRF com múltiplos padrões de fallback |
| Controle de rede | Suporte a proxy HTTP/HTTPS para inspeção controlada de solicitações |
| Confiabilidade | Pooling de conexões, timeouts e tratamento de erros |
| Operações de arquivo | Funcionalidade de recuperação de arquivos para cenários de avaliação autorizados |
| Suporte a plataformas | Ambientes Linux, macOS e Windows com Python 3.6+ |
A interface interativa suporta comandos como os seguintes. Use apenas comandos não destrutivos em ambientes de teste aprovados.
$> whoami # Display the execution identity
$> id # Display user and group information
$> pwd # Display the current working directory
$> exit # Close the session
| Requisito | Valor mínimo ou suportado |
|---|---|
| Python | 3.6 ou mais recente |
| Gerenciador de pacotes | pip |
| Sistemas operacionais | Linux, macOS ou Windows |
| Acesso à rede | Necessário apenas para instalar dependências e alcançar um alvo de teste autorizado |
O conjunto exato de dependências é definido em requirements.txt. Use um ambiente virtual para isolar as dependências do projeto do sistema host.
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
cd JCEzploit-CVE-2026-48907
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
chmod +x jcezploit.py
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
Set-Location JCEzploit-CVE-2026-48907
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
Se as políticas de execução do PowerShell impedirem a ativação, consulte a política de gerenciamento de endpoints da sua organização em vez de enfraquecer os controles de segurança globalmente. O script também pode ser invocado diretamente pelo interpretador do ambiente virtual.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
Se o repositório contiver um Dockerfile mantido, crie e execute-o em um ambiente de laboratório isolado e autorizado:
docker build -t jcezploit .
docker run --rm -it jcezploit --help
Não monte diretórios sensíveis do host, credenciais de produção ou rede do host sem restrições no contêiner.
Comece sempre revisando o escopo do alvo e exibindo a ajuda integrada:
python jcezploit.py --help
A interface de linha de comando fornecida está resumida abaixo.
usage: jcezploit.py [-h] -u URL [--proxy PROXY] [-v] [-q]
[--cmd CMD] [--interactive] [--batch FILE]
[--no-confirm]
JCEzploit - Joomla JCE security testing utility
options:
-h, --help Show this help message and exit
-u, --url URL Authorized target base URL (required )
--proxy PROXY HTTP proxy, for example http://127.0.0.1:8080
-v, --verbose Enable diagnostic output
-q, --quiet Suppress non-essential output
--cmd CMD Execute one approved test command and exit
--interactive Start an interactive test session
--batch FILE Read approved test commands from a file
--no-confirm Skip the confirmation prompt; use only in automation
Os exemplos a seguir demonstram padrões de invocação. Substitua o alvo por um endpoint de laboratório ou avaliação explicitamente autorizado.
# Start an interactive assessment session.
python jcezploit.py --url http://authorized-lab.example --interactive
# Execute a low-impact identity check.
python jcezploit.py --url http://authorized-lab.example --cmd "id"
# Route requests through a local inspection proxy.
python jcezploit.py \
--url http://authorized-lab.example \
--proxy http://127.0.0.1:8080 \
--interactive \
--verbose
Crie um arquivo de comandos contendo apenas etapas de validação pré-aprovadas e não destrutivas:
# commands.txt
whoami
id
pwd
Execute o arquivo de lote contra o alvo aprovado:
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
Use --verbose ao solucionar problemas de fluxo de solicitações em um ambiente controlado ou ao coletar evidências para um relatório de avaliação. Use --quiet ao integrar a saída a um pipeline de automação aprovado. Evite armazenar segredos, tokens de sessão, corpos de resposta ou dados pessoais em logs compartilhados.
O projeto aceita configuração por linha de comando. A convenção de variáveis de ambiente a seguir pode ser usada por wrappers ou runbooks locais, desde que a implementação a suporte explicitamente:
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
Não envie arquivos .env, credenciais, tokens, inventários de alvos, respostas capturadas ou resultados de avaliação para o controle de versão. Adicione arquivos de configuração locais ao .gitignore e use um gerenciador de segredos quando apropriado.
JCEzploit/
├── jcezploit.py # Main command-line program
├── requirements.txt # Runtime dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── .gitignore # Ignored local and generated files
├── setup.sh # Optional setup helper
├── sample_commands.txt # Example command file
├── Dockerfile # Container build definition
├── verify.py # Dependency verification helper
└── docs/
├── vulnerability_details.md
├── pentest_guide.md
└── changelog.md
A árvore acima reflete a estrutura do projeto fornecida. Atualize-a sempre que arquivos forem adicionados, removidos ou renomeados.
Instale as dependências de desenvolvimento apenas se o repositório fornecer um arquivo requirements-dev.txt mantido:
pip install -r requirements-dev.txt
python -m pytest tests/
Antes de abrir um pull request, confirme se as alterações estão documentadas, os testes passam, o tratamento de erros permanece claro e nenhum dado de alvo ou segredo está incluído nos commits. Adicione testes de regressão para análise sintática, validação de entrada, tratamento de proxy, comportamento de timeout e caminhos de falha seguros.
Uma avaliação profissional deve usar um ambiente de teste dedicado sempre que possível. Faça um backup ou snapshot antes da validação, defina um procedimento de parada de emergência, monitore a saúde do aplicativo e do host e coordene com o proprietário do sistema durante toda a janela de teste.
A ferramenta não deve ser usada para estabelecer persistência, implantar malware adicional, evadir monitoramento, acessar contas não relacionadas, despejar arquivos sensíveis ou mover-se lateralmente. A coleta de evidências deve ser limitada ao necessário para demonstrar a descoberta e deve seguir os requisitos de tratamento de dados do cliente.
Se os testes revelarem um problema anteriormente desconhecido, não publique detalhes de exploit imediatamente. Notifique o fornecedor ou projeto afetado em particular, forneça evidências defensivas reproduzíveis, permita um tempo razoável para correção e coordene qualquer divulgação pública. Consulte o Joomla Security Centre para obter as diretrizes publicadas de comunicação de segurança do projeto.
Contribuições são bem-vindas de profissionais de segurança e desenvolvedores que apoiam pesquisa responsável e defensiva. Abra uma issue antes de alterações significativas para que o escopo e as expectativas de segurança possam ser discutidos.
Um fluxo de trabalho típico de contribuição é:
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
Pull requests devem explicar o problema abordado, descrever a alteração, identificar a cobertura de testes e documentar quaisquer implicações de compatibilidade ou segurança. Siga o PEP 8 para código Python, prefira mensagens de erro claras, evite incorporar segredos e preserve as salvaguardas de uso ético do projeto.
Lançamento inicial do projeto.
Adicionado o fluxo de trabalho de teste de segurança JCE reportado.
Adicionado suporte a sessão interativa.
Adicionada funcionalidade de recuperação de arquivos para testes autorizados.
Adicionado processamento de comandos em lote.
Adicionado suporte a proxy.
Adicionada saída rica de linha de comando.
Adicionado suporte multiplataforma.
Expandir a cobertura de validação defensiva.
Melhorar os testes de compatibilidade entre as versões suportadas do Joomla e do JCE.
Adicionar saída estruturada de relatório de avaliação.
Adicionar validação de entrada mais forte e comportamento padrão mais seguro.
Adicionar testes automatizados de unidade e integração.
Fornecer uma configuração de laboratório documentada para pesquisa repetível.
Este projeto é distribuído sob a Licença MIT. Consulte LICENSE para ver o texto completo da licença.
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Sudeepa Wanigarathna
Pesquisador de Segurança e Testador de Penetração
O projeto deve ser atualizado com um link direto para o registro da vulnerabilidade depois que os metadados do CVE forem verificados de forma independente no 4. Diretrizes gerais de testes defensivos estão disponíveis no 3.
Use este projeto com responsabilidade, legalidade e somente com autorização explícita.