
Exploit RCE automatizzato per Joomla JCE (CVE-2026-48907) con shell interattiva, esecuzione batch di comandi, download di file e supporto proxy per test di penetrazione autorizzati.
Un'utilità professionale da riga di comando per test di penetrazione autorizzati, ricerca controllata delle vulnerabilità e validazione difensiva.
Solo uso autorizzato. Eseguire questo progetto esclusivamente su sistemi di propria proprietà o per i quali si dispone di esplicita autorizzazione ai test. Utilizzare un ambiente di laboratorio controllato quando possibile.

JCEzploit è un'utilità di ricerca sulla sicurezza da riga di comando per valutare la funzionalità di importazione dei profili del componente Joomla Content Editor (JCE) in ambienti in cui il tester dispone di esplicita autorizzazione. È progettato per penetration tester professionisti, ricercatori di sicurezza e difensori che devono riprodurre e validare una condizione di esecuzione remota di codice segnalata in un ambiente controllato.
Il progetto offre un flusso di lavoro strutturato da riga di comando, supporto proxy configurabile, molteplici modalità di esecuzione, output diagnostico e un'interfaccia di sessione interattiva. Deve essere utilizzato esclusivamente su target di proprietà dell'operatore o coperti da autorizzazione scritta ai test.
Nota di pubblicazione: Prima di pubblicare o distribuire questo README, verificare l'identificativo CVE del progetto, l'intervallo delle versioni interessate, la versione corretta, lo stato di divulgazione e la matrice di test rispetto a un record autorevole del fornitore o del database delle vulnerabilità. I metadati seguenti riflettono le informazioni fornite con il progetto e non devono essere considerati una conferma indipendente della vulnerabilità.
Questo software può causare accessi non autorizzati, esposizione di dati, interruzione del servizio o compromissione del sistema se utilizzato contro un target non approvato. I manutentori non autorizzano test su sistemi di terze parti, infrastrutture pubbliche o sistemi senza un permesso documentato.
Utilizzando questo progetto, l'utente accetta di:
Testare solo sistemi per i quali si dispone di esplicita autorizzazione scritta.
Definire e rispettare un ambito approvato, una finestra temporale, un limite di frequenza e regole di ingaggio.
Evitare di accedere, modificare, esfiltrare o conservare dati non necessari.
Interrompere immediatamente i test se l'attività rischia di interrompere il servizio o di avere un impatto su utenti non coinvolti.
Rispettare tutte le leggi, le normative, i contratti e le politiche organizzative applicabili.
Accettare la responsabilità per le conseguenze dell'uso del software.
L'autore e i collaboratori forniscono questo progetto "così com'è" e non sono responsabili di usi impropri, danni, perdita di dati, rivendicazioni legali o altre conseguenze derivanti dal suo utilizzo.
I seguenti dettagli sono stati forniti con il progetto e richiedono una verifica indipendente prima di essere utilizzati in un advisory di sicurezza o in una valutazione in produzione.
| Campo | Dettaglio fornito dal progetto |
|---|---|
| Identificativo della vulnerabilità | CVE-2026-48907 |
| Problema segnalato | Esecuzione remota di codice non autenticata |
| Versioni interessate segnalate | JCE 1.0.0 fino alla 2.9.99.4 |
| Versione corretta segnalata | JCE 2.9.99.5 |
| Ambiente di test fornito | Joomla 3.10.11, JCE 2.9.15, Apache 2.4, PHP 7.4 |
| Gravità segnalata | Critica; potenziale compromissione completa del sistema |
Per attività difensive, confermare prima le versioni di Joomla e JCE in uso, ottenere l'autorizzazione, creare un piano di rollback e preferire, quando possibile, un metodo di validazione non distruttivo.
JCEzploit include le seguenti funzionalità come descritto dai materiali del progetto:
| Area | Funzionalità |
|---|---|
| Flusso di lavoro | Preparazione automatizzata delle richieste e flusso di lavoro di validazione delle vulnerabilità |
| Interfaccia di sessione | Sessione di comandi interattiva con cronologia, completamento e output colorato |
| Modalità di esecuzione | Modalità interattiva, comando singolo, batch, silenziosa, dettagliata e orientata al debug |
| Rilevamento | Individuazione del token CSRF con molteplici pattern di fallback |
| Controllo di rete | Supporto proxy HTTP/HTTPS per l'ispezione controllata delle richieste |
| Affidabilità | Connection pooling, timeout e gestione degli errori |
| Operazioni sui file | Funzionalità di recupero file per scenari di valutazione autorizzati |
| Supporto piattaforme | Ambienti Linux, macOS e Windows con Python 3.6+ |
L'interfaccia interattiva supporta comandi come i seguenti. Utilizzare solo comandi non distruttivi in ambienti di test approvati.
$> whoami # Display the execution identity
$> id # Display user and group information
$> pwd # Display the current working directory
$> exit # Close the session
| Requisito | Valore minimo o supportato |
|---|---|
| Python | 3.6 o successiva |
| Gestore di pacchetti | pip |
| Sistemi operativi | Linux, macOS o Windows |
| Accesso di rete | Necessario solo per installare le dipendenze e raggiungere un target di test autorizzato |
Il set esatto di dipendenze è definito in requirements.txt. Utilizzare un ambiente virtuale per isolare le dipendenze del progetto dal 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 i criteri di esecuzione di PowerShell impediscono l'attivazione, consultare la policy di gestione degli endpoint della propria organizzazione anziché indebolire i controlli di sicurezza a livello globale. Lo script può anche essere invocato direttamente tramite l'interprete dell'ambiente virtuale.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
Se il repository contiene un Dockerfile mantenuto, crearlo ed eseguirlo in un ambiente di laboratorio isolato e autorizzato:
docker build -t jcezploit .
docker run --rm -it jcezploit --help
Non montare directory host sensibili, credenziali di produzione o reti host senza restrizioni nel container.
Iniziare sempre esaminando l'ambito del target e visualizzando la guida integrata:
python jcezploit.py --help
L'interfaccia da riga di comando fornita è riepilogata di seguito.
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
Gli esempi seguenti illustrano i pattern di invocazione. Sostituire il target con un endpoint di laboratorio o di valutazione esplicitamente autorizzato.
# 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
Creare un file di comandi contenente solo passaggi di validazione pre-approvati e non distruttivi:
# commands.txt
whoami
id
pwd
Eseguire il file batch sul target approvato:
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
Utilizzare --verbose per la risoluzione dei problemi del flusso di richieste in un ambiente controllato o per la raccolta di prove per un report di valutazione. Utilizzare --quiet quando si integra l'output in una pipeline di automazione approvata. Evitare di memorizzare segreti, token di sessione, corpi di risposta o dati personali nei log condivisi.
Il progetto accetta la configurazione tramite riga di comando. La seguente convenzione per le variabili d'ambiente può essere utilizzata da wrapper o runbook locali, purché l'implementazione la supporti esplicitamente:
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
Non committare file .env, credenziali, token, inventari di target, risposte acquisite o risultati di valutazione nel controllo versione. Aggiungere i file di configurazione locali a .gitignore e utilizzare un gestore di segreti dove appropriato.
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
L'albero sopra riportato riflette la struttura del progetto fornita. Aggiornarlo ogni volta che i file vengono aggiunti, rimossi o rinominati.
Installare le dipendenze di sviluppo solo se il repository fornisce un file requirements-dev.txt mantenuto:
pip install -r requirements-dev.txt
python -m pytest tests/
Prima di aprire una pull request, verificare che le modifiche siano documentate, che i test siano superati, che la gestione degli errori rimanga chiara e che nessun dato del target o segreto sia incluso nei commit. Aggiungere test di regressione per il parsing, la validazione dell'input, la gestione del proxy, il comportamento dei timeout e i percorsi di errore sicuri.
Una valutazione professionale dovrebbe utilizzare un ambiente di test dedicato quando possibile. Effettuare un backup o uno snapshot prima della validazione, definire una procedura di arresto di emergenza, monitorare lo stato dell'applicazione e dell'host e coordinarsi con il proprietario del sistema per l'intera finestra di test.
Lo strumento non deve essere utilizzato per stabilire persistenza, distribuire malware aggiuntivo, eludere il monitoraggio, accedere ad account non correlati, estrarre file sensibili o spostarsi lateralmente. La raccolta di prove deve essere limitata a quanto necessario per dimostrare il risultato e deve seguire i requisiti di gestione dei dati del cliente.
Se i test rivelano un problema precedentemente sconosciuto, non pubblicare immediatamente i dettagli dello sfruttamento. Notificare privatamente il fornitore o il progetto interessato, fornire prove difensive riproducibili, concedere un tempo ragionevole per la mitigazione e coordinare qualsiasi divulgazione pubblica. Consultare il Joomla Security Centre per le linee guida pubblicate del progetto sulla segnalazione dei problemi di sicurezza.
I contributi sono benvenuti da parte di professionisti della sicurezza e sviluppatori che supportano la ricerca responsabile e difensiva. Aprire una issue prima di modifiche significative in modo che ambito e aspettative di sicurezza possano essere discussi.
Un tipico flusso di lavoro per i contributi è:
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
Le pull request dovrebbero spiegare il problema affrontato, descrivere la modifica, indicare la copertura dei test e documentare eventuali implicazioni di compatibilità o sicurezza. Seguire PEP 8 per il codice Python, preferire messaggi di errore chiari, evitare di incorporare segreti e preservare le salvaguardie di uso etico del progetto.
Rilascio iniziale del progetto.
Aggiunto il flusso di lavoro di test di sicurezza JCE segnalato.
Aggiunto il supporto alla sessione interattiva.
Aggiunta la funzionalità di recupero file per test autorizzati.
Aggiunta l'elaborazione dei comandi in batch.
Aggiunto il supporto proxy.
Aggiunto l'output da riga di comando avanzato.
Aggiunto il supporto multipiattaforma.
Ampliare la copertura di validazione difensiva.
Migliorare i test di compatibilità sulle versioni supportate di Joomla e JCE.
Aggiungere l'output strutturato dei report di valutazione.
Aggiungere una validazione dell'input più rigorosa e un comportamento predefinito più sicuro.
Aggiungere test automatici unitari e di integrazione.
Fornire una configurazione di laboratorio documentata per una ricerca ripetibile.
Questo progetto è distribuito sotto la licenza MIT. Vedere LICENSE per il testo completo della licenza.
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
Ricercatore di sicurezza e penetration tester
Il progetto dovrebbe essere aggiornato con un collegamento diretto al record della vulnerabilità dopo che i metadati CVE saranno stati verificati in modo indipendente nel 4. Linee guida generali sui test difensivi sono disponibili nel 3.
Utilizzare questo progetto in modo responsabile, legale e solo con esplicita autorizzazione.