
Exploit automatizado de RCE para Joomla JCE (CVE-2026-48907) con shell interactiva, ejecución de comandos por lotes, descarga de archivos y soporte de proxy para pruebas de penetración autorizadas.
Una utilidad profesional de línea de comandos para pruebas de penetración autorizadas, investigación controlada de vulnerabilidades y validación defensiva.
Solo uso autorizado. Ejecute este proyecto exclusivamente contra sistemas de su propiedad o para los que tenga permiso explícito de pruebas. Utilice un entorno de laboratorio controlado siempre que sea posible.

JCEzploit es una utilidad de investigación de seguridad de línea de comandos para evaluar la funcionalidad de importación de perfiles del componente Joomla Content Editor (JCE) en entornos donde el evaluador cuenta con autorización explícita. Está diseñada para probadores de penetración profesionales, investigadores de seguridad y defensores que necesitan reproducir y validar una condición de ejecución remota de código reportada en un entorno controlado.
El proyecto ofrece un flujo de trabajo estructurado de línea de comandos, soporte de proxy configurable, múltiples modos de ejecución, salida de diagnóstico e interfaz de sesión interactiva. Solo debe utilizarse contra objetivos que pertenezcan al operador o que estén cubiertos por una autorización escrita de pruebas.
Nota de publicación: Antes de publicar o distribuir este README, verifique el identificador CVE del proyecto, el rango de versiones afectadas, la versión corregida, el estado de divulgación y la matriz de pruebas frente a un registro autorizado del proveedor o de una base de datos de vulnerabilidades. Los metadatos a continuación reflejan la información del proyecto proporcionada y no deben tratarse como una confirmación independiente de la vulnerabilidad.
Este software puede provocar acceso no autorizado, exposición de datos, interrupción del servicio o compromiso del sistema cuando se utiliza contra un objetivo no aprobado. Los mantenedores no autorizan las pruebas de sistemas de terceros, infraestructura pública ni sistemas sin permiso documentado.
Al utilizar este proyecto, usted acepta:
Probar únicamente sistemas para los que tenga autorización escrita explícita.
Definir y seguir un alcance aprobado, una ventana de tiempo, un límite de tasa y reglas de enfrentamiento.
Evitar acceder, modificar, extraer o retener datos innecesarios.
Detener las pruebas de inmediato si la actividad corre el riesgo de interrumpir el servicio o afecta a usuarios no involucrados.
Cumplir con todas las leyes, regulaciones, contratos y políticas organizativas aplicables.
Aceptar la responsabilidad por las consecuencias del uso del software.
El autor y los colaboradores proporcionan este proyecto tal cual («as is») y no son responsables del uso indebido, daños, pérdida de datos, reclamaciones legales u otras consecuencias derivadas de su uso.
Los siguientes detalles se proporcionaron con el proyecto y requieren verificación independiente antes de utilizarlos en un aviso de seguridad o en una evaluación de producción.
| Campo | Detalle del proyecto proporcionado |
|---|---|
| Identificador de vulnerabilidad | CVE-2026-48907 |
| Problema reportado | Ejecución remota de código sin autenticación |
| Versiones afectadas reportadas | JCE 1.0.0 hasta 2.9.99.4 |
| Versión corregida reportada | JCE 2.9.99.5 |
| Entorno de prueba proporcionado | Joomla 3.10.11, JCE 2.9.15, Apache 2.4, PHP 7.4 |
| Severidad reportada | Crítica; posible compromiso total del sistema |
Para trabajo defensivo, confirme primero las versiones de Joomla y JCE implementadas, obtenga autorización, cree un plan de reversión y prefiera un método de validación no destructivo siempre que sea posible.
JCEzploit incluye las siguientes capacidades según lo descrito en los materiales del proyecto:
| Área | Capacidad |
|---|---|
| Flujo de trabajo | Flujo de trabajo automatizado de preparación de solicitudes y validación de vulnerabilidades |
| Interfaz de sesión | Sesión de comandos interactiva con historial, autocompletado y salida en color |
| Modos de ejecución | Modos interactivo, de comando único, por lotes, silencioso, verboso y orientado a depuración |
| Detección | Detección de token CSRF con múltiples patrones de respaldo |
| Control de red | Soporte de proxy HTTP/HTTPS para la inspección controlada de solicitudes |
| Fiabilidad | Agrupación de conexiones, tiempos de espera y manejo de errores |
| Operaciones de archivos | Funcionalidad de recuperación de archivos para escenarios de evaluación autorizados |
| Soporte de plataformas | Entornos Linux, macOS y Windows con Python 3.6+ |
La interfaz interactiva admite comandos como los siguientes. Utilice únicamente comandos no destructivos en entornos de prueba aprobados.
$> 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 o soportado |
|---|---|
| Python | 3.6 o superior |
| Gestor de paquetes | pip |
| Sistemas operativos | Linux, macOS o Windows |
| Acceso a red | Solo se requiere para instalar dependencias y alcanzar un objetivo de prueba autorizado |
El conjunto exacto de dependencias se define en requirements.txt. Utilice un entorno virtual para aislar las dependencias del proyecto del sistema anfitrión.
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
Si las políticas de ejecución de PowerShell impiden la activación, consulte la política de gestión de endpoints de su organización en lugar de debilitar los controles de seguridad a nivel global. El script también se puede invocar directamente mediante el intérprete del entorno virtual.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
Si el repositorio contiene un Dockerfile mantenido, constrúyalo y ejecútelo en un entorno de laboratorio aislado y autorizado:
docker build -t jcezploit .
docker run --rm -it jcezploit --help
No monte directorios sensibles del host, credenciales de producción ni redes de host sin restricciones en el contenedor.
Comience siempre revisando el alcance del objetivo y mostrando la ayuda integrada:
python jcezploit.py --help
La interfaz de línea de comandos proporcionada se resume a continuación.
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
Los siguientes ejemplos demuestran patrones de invocación. Reemplace el objetivo con un endpoint de laboratorio o evaluación explícitamente 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
Cree un archivo de comandos que contenga únicamente pasos de validación no destructivos preaprobados:
# commands.txt
whoami
id
pwd
Ejecute el archivo por lotes contra el objetivo aprobado:
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
Utilice --verbose al solucionar problemas del flujo de solicitudes en un entorno controlado o al recopilar evidencia para un informe de evaluación. Utilice --quiet al integrar la salida en un pipeline de automatización aprobado. Evite almacenar secretos, tokens de sesión, cuerpos de respuesta o datos personales en registros compartidos.
El proyecto acepta configuración mediante línea de comandos. La siguiente convención de variables de entorno puede ser utilizada por wrappers o runbooks locales, siempre que la implementación la admita explícitamente:
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
No incluya en el control de versiones archivos .env, credenciales, tokens, inventarios de objetivos, respuestas capturadas ni resultados de evaluación. Agregue los archivos de configuración locales a .gitignore y utilice un gestor de secretos cuando corresponda.
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
El árbol anterior refleja la estructura del proyecto proporcionada. Actualícelo cada vez que se agreguen, eliminen o renombren archivos.
Instale las dependencias de desarrollo únicamente si el repositorio proporciona un archivo requirements-dev.txt mantenido:
pip install -r requirements-dev.txt
python -m pytest tests/
Antes de abrir un pull request, confirme que los cambios estén documentados, que las pruebas pasen, que el manejo de errores siga siendo claro y que no se incluyan datos de objetivos ni secretos en los commits. Agregue pruebas de regresión para el análisis sintáctico, la validación de entrada, el manejo de proxy, el comportamiento de tiempos de espera y las rutas de fallo seguras.
Una evaluación profesional debe utilizar un entorno de prueba dedicado siempre que sea posible. Realice una copia de seguridad o una instantánea antes de la validación, defina un procedimiento de detención de emergencia, supervise el estado de la aplicación y del host, y coordine con el propietario del sistema durante toda la ventana de prueba.
La herramienta no debe utilizarse para establecer persistencia, implementar malware adicional, evadir la monitorización, acceder a cuentas no relacionadas, volcar archivos sensibles ni moverse lateralmente. La recopilación de evidencia debe limitarse a lo necesario para demostrar el hallazgo y debe seguir los requisitos de manejo de datos del cliente.
Si las pruebas revelan un problema previamente desconocido, no publique los detalles del exploit de inmediato. Notifique de forma privada al proveedor o proyecto afectado, proporcione evidencia defensiva reproducible, permita un tiempo razonable para la remediación y coordine cualquier divulgación pública. Consulte el Centro de Seguridad de Joomla para obtener la guía publicada del proyecto sobre reporte de seguridad.
Las contribuciones son bienvenidas de parte de profesionales de la seguridad y desarrolladores que apoyan la investigación responsable y defensiva. Abra un issue antes de cambios significativos para que se puedan discutir el alcance y las expectativas de seguridad.
Un flujo de trabajo de contribución típico es:
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
Los pull requests deben explicar el problema que se aborda, describir el cambio, identificar la cobertura de pruebas y documentar cualquier implicación de compatibilidad o seguridad. Siga PEP 8 para el código Python, prefiera mensajes de error claros, evite incrustar secretos y preserve las salvaguardas de uso ético del proyecto.
Versión inicial del proyecto.
Se agregó el flujo de trabajo de pruebas de seguridad de JCE reportado.
Se agregó soporte de sesión interactiva.
Se agregó funcionalidad de recuperación de archivos para pruebas autorizadas.
Se agregó procesamiento de comandos por lotes.
Se agregó soporte de proxy.
Se agregó salida de línea de comandos enriquecida.
Se agregó soporte multiplataforma.
Ampliar la cobertura de validación defensiva.
Mejorar las pruebas de compatibilidad en las versiones de Joomla y JCE soportadas.
Agregar salida estructurada de informes de evaluación.
Agregar una validación de entrada más sólida y un comportamiento predeterminado más seguro.
Agregar pruebas automatizadas unitarias y de integración.
Proporcionar una configuración de laboratorio documentada para investigación reproducible.
Este proyecto se distribuye bajo la Licencia MIT. Consulte LICENSE para ver el texto completo de la licencia.
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
Investigador de seguridad y probador de penetración
El proyecto debe actualizarse con un enlace directo al registro de la vulnerabilidad después de que los metadatos del CVE hayan sido verificados de forma independiente en 4. En 3 se dispone de orientación general sobre pruebas defensivas.
Utilice este proyecto de manera responsable, legal y únicamente con autorización explícita.