## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MURREZ-CVE-2026-65891
# CVE-2026-65891 — PoC de Rename para Joomla JCE
Escáner de prueba de concepto para **CVE-2026-65891** en la extensión Joomla Content Editor (JCE).
La validación de entrada incorrecta en la función **rename** del administrador de archivos de JCE permite a un usuario autenticado con permisos de gestión de archivos:
* crear **archivos ocultos** (nombres con prefijo de punto, p. ej. `.shell.php`)
* **sobrescribir silenciosamente** archivos existentes en la ruta de destino
> **Solo pruebas autorizadas.** Úselo en sistemas que le pertenezcan o sobre los que tenga permiso explÃcito para probar.
## Resumen de la vulnerabilidad
Campo| Valor
---|---
**CVE**| CVE-2026-65891
**Producto**| JCE (com_jce) — Widget Factory Limited
**Afectado**| JCE **< 2.20.2** (hasta 2.20.1 / 2.9.99.9)
**Corregido**| **JCE 2.20.2+** (2026-07-29)
**CVSS 3.1**| **6.5 Media**
**CWE**| CWE-20 — Validación de entrada incorrecta
**Autenticación**| Requerida — permisos de subida y renombrado de JCE
**KEV**| No
Esto **no** es RCE sin autenticar. No lo confunda con CVE-2026-48907 (importación de perfil de JCE, sin autenticación).
## Causa raÃz
Los manejadores de renombrado `browser` / `imgmanager` de JCE aceptaban nombres de archivo de destino que deberÃan rechazarse:
* nombres que comienzan con `.` (ocultos en POSIX)
* renombrados que reemplazan un archivo existente sin confirmación
Corregido en **2.20.2** : validación de extensiones en renombrar/copiar/mover y sin sobrescritura silenciosa.
## Qué hace este PoC
### `check` (sin credenciales)
* Detectar la instalación de Joomla + JCE
* Leer la versión de JCE desde `jce.xml` / assets
* Marcar versiones **< 2.20.2**
### `probe` / `exploit` (credenciales requeridas)
1. Inicie sesión vÃa `/administrator/` (o `--frontend-login`)
2. Obtenga el token CSRF de Joomla
3. Suba un `.txt` de marcador vÃa `plugin.rpc` (plugin `browser`)
4. Renombre a `.cve65891_<random>.txt` (oculto)
5. `GET /images/.cve65891_*.txt` — si el marcador se puede leer → **EXPLOITED**
## Instalación
root@kitploit:~
git clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
**Requisitos:** Python 3.10+
## Uso
root@kitploit:~
# 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
### Opciones
Flag| Descripción
---|---
`-u`, `--url`| URL base de un solo Joomla
`-f`, `--file`| Lista de objetivos (una URL por lÃnea)
`-m`, `--mode`| `check` · `probe` · `exploit` · `full` (predeterminado: `full`)
`-j`, `--threads`| Trabajadores paralelos (predeterminado: 15)
`-t`, `--timeout`| Tiempo de espera HTTP en segundos (predeterminado: 25)
`-o`, `--output`| Escribir solo las coincidencias **VULNERABLE** / **EXPLOITED**
`--user`| Usuario de Joomla
`--pass`| Contraseña de Joomla
`--cookie-file`| Archivo con la cabecera `Cookie:` sin procesar (omite el inicio de sesión)
`--upload-dir`| Directorio de subida de JCE (predeterminado: `images`)
`--frontend-login`| Iniciar sesión a través del frontend en lugar del administrador
`-v`, `--verbose`| Salida de depuración
### Modos
Modo| Autenticación| Descripción
---|---|---
`check`| No| Joomla + JCE + versión
`probe`| SÃ| Subida + renombrado oculto + verificación
`exploit`| SÃ| Igual que `probe`
`full`| SÃ*| check y luego probe (*probe requiere autenticación)
## Ejemplo de salida
root@kitploit:~
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
Solo las lÃneas **VULNERABLE** y **EXPLOITED** se escriben en `-o`.
## Requisitos previos para probe/exploit
La cuenta de prueba debe tener un perfil de editor JCE con:
* Acceso al **File browser / Image manager**
* Permiso de **Upload**
* Permiso de **Rename**
Normalmente: Editor, Manager o Administrator, no un simple usuario registrado.
## Mitigación
1. Actualice JCE a **2.20.2** o posterior
`Extensions → Manage → Update` o descárguelo desde joomlacontenteditor.net
2. Hasta que se aplique el parche: deshabilite **Rename** en la configuración del perfil de JCE para los grupos de usuarios no confiables (Image Manager, File Browser).
## Detección
Busque solicitudes autenticadas a:
root@kitploit:~
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
Con `method=rename` / `renameItem` y nombres de destino que comiencen con `.`.
Archivos ocultos inesperados en las rutas de subida de JCE (`/images/`, `/media/`).
## Aviso legal
Esta herramienta es solo para **investigación de seguridad, educación y pruebas de penetración autorizadas**. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso.
## Referencias
* NVD — CVE-2026-65891
* JCE — joomlacontenteditor.net
* OpenCVE
## Licencia
MIT — consulte LICENSE.