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-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla — Python exploit para CVE-2026-21627, una inclusión arbitraria de archivos PHP sin autenticación en el Framework Novarain de Joomla, que permite la carga de archivos, su eliminación y RCE. | Kitploit
Herramientas/GitHubGitHub/yallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubyallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla

CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla

Python exploit para CVE-2026-21627, una inclusión arbitraria de archivos PHP sin autenticación en el Framework Novarain de Joomla, que permite la carga de archivos, su eliminación y RCE.

Ver Repositorio
hace 6 mesesAú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

CVE-2026-21627

Inclusión Arbitraria de Archivos sin Autenticación en el Framework Novarain de Joomla (nrframework)

CVSS Joomla Python


Resumen

Una vulnerabilidad crítica en el plugin Tassos/Novarain Framework (plg_system_nrframework) de Joomla permite a atacantes no autenticados incluir archivos PHP arbitrarios en el servidor, instanciar clases arbitrarias y encadenar con clases gadget integradas para lograr subida de archivos arbitrarios y eliminación de archivos arbitrarios — todo sin autenticación.

ID CVECVE-2026-21627
Puntuación CVSS9.5 (Crítico)
Pluginplg_system_nrframework (Tassos Framework / Novarain Framework)
Versiones Vulnerables4.10.14 hasta 6.0.37
Corregido En6.0.38+
CMSJoomla 3.x, 4.x, 5.x

El plugin nrframework se incluye con varias extensiones populares de Joomla de Tassos.gr, incluyendo Convert Forms, Engage Box, Google Structured Data y otras.

Detalles de la Vulnerabilidad

El método ajaxTaskInclude() en nrframework.php está explícitamente incluido en la lista blanca para acceso frontal (no administrador) mediante el array $non_admin_tasks. Acepta tres parámetros controlados por el usuario:

  • path — utiliza el filtro de entrada RAW (cero sanitización, posible traversal de rutas)
  • file — utiliza el filtro de entrada predeterminado de Joomla
  • class — nombre de la clase a instanciar después de la inclusión

La ruta concatenada $path . $file . '.php' se pasa directamente a @include_once, lo que permite la inclusión arbitraria de archivos PHP. Después de la inclusión, la clase especificada se instancia y su método onAJAX() se llama con parámetros controlados por el usuario.

Primitivas de Ataque

PrimitivaGadgetSeveridadDescripción
Inclusión de ArchivosajaxTaskInclude()CríticoIncluir cualquier archivo .php en el servidor
Eliminación de ArchivosJFormFieldNRInlineFileUpload::onRemove()Críticounlink() sin validación de ruta — eliminar cualquier archivo escribible por el servidor web
Subida de ArchivosJFormFieldNRInlineFileUpload::onUpload()AltoSubir archivos de texto a cualquier directorio escribible accesible por web
Divulgación de RutasRespuesta de subidaMedioRuta completa del sistema de archivos filtrada en la respuesta JSON

Uso

root@kitploit:~
python3 cve_2026_21627.py --target <URL> --mode <MODO> [OPCIONES]

Modos

ModoDescripciónRiesgo
verifyConfirmar que la vulnerabilidad existeSeguro / Solo lectura
uploadSubir un archivo a un directorio controladoMedio
deleteEliminar un archivo arbitrario en el servidorDestructivo
rceIntentar la cadena RCE completa (subida + ejecución)Alto
infoIncluir archivo PHP arbitrario para reconocimientoMedio

Ejemplos

Verificar vulnerabilidad:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode verify

Subir archivo de prueba de concepto:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type txt

Subir shell SSI (requiere mod_include de Apache):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type shtml

Intentar cadena RCE:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode rce --cmd "id"

Eliminar un archivo (destructivo):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode delete --file-path /var/www/html/test.txt

Opciones

root@kitploit:~
--target, -t       URL objetivo (obligatorio)
--mode, -m         Modo de explotación: verify|upload|delete|rce|info (obligatorio)
--sef-prefix       Prefijo de URL SEF de Joomla (predeterminado: /it/)
--delay            Retraso entre solicitudes en segundos (predeterminado: 2.5)
--proxy            Proxy HTTP (p. ej. http://127.0.0.1:8080)
--no-ssl-verify    Deshabilitar verificación de certificado SSL

Modo de subida:
  --shell-type     Tipo de archivo: shtml|csv|txt|html (predeterminado: shtml)
  --upload-dir     Directorio de subida relativo a JPATH_ROOT (predeterminado: images)
  --custom-content Contenido personalizado del archivo a subir

Modo de eliminación:
  --file-path      Ruta completa en el servidor del archivo a eliminar

Modo RCE:
  --cmd            Comando a ejecutar (predeterminado: id)

Modo info:
  --php-path       Ruta del archivo PHP relativa a JPATH_SITE
  --php-file       Nombre del archivo PHP sin extensión .php
  --php-class      Clase PHP a instanciar

Cómo Funciona

root@kitploit:~
┌──────────────┐    ┌───────────────────┐    ┌─────────────────────┐
│   Atacante   │───>│  onAjaxNrframework │───>│  ajaxTaskInclude()  │
│              │    │  (enrutador AJAX)  │    │                     │
│ task=include │    │  include está en   │    │ path = entrada RAW  │
│ path=...     │    │  $non_admin_tasks  │    │ @include_once $path │
│ file=...     │    │  (sin autenticación)│   │ new $class()->onAJAX│
│ class=...    │    └───────────────────┘    └──────────┬──────────┘
└──────────────┘                                        │
                                                        v
                               ┌─────────────────────────────────────┐
                               │  JFormFieldNRInlineFileUpload       │
                               │  (clase gadget)                     │
                               │                                     │
                               │  onAjax() ──> onUpload()  [ESCRIBIR]│
                               │           ──> onRemove()  [ELIMINAR]│
                               └─────────────────────────────────────┘
  1. Sesión y CSRF — Joomla crea sesiones de forma diferida. El exploit desencadena la creación de sesión sondeando el endpoint AJAX y luego extrae el token CSRF del HTML de la página principal.
  2. Inclusión de Archivos — La tarea include se llama con un path controlado (filtro RAW = sin sanitización) que apunta al archivo gadget.
  3. Ejecución del Gadget — La clase incluida JFormFieldNRInlineFileUpload proporciona onUpload() para escrituras de archivos y onRemove() para eliminaciones de archivos, ambas con validación de entrada insuficiente.

Requisitos

  • Python 3.7+
  • Biblioteca requests
root@kitploit:~
pip install requests

Detección

Monitoree los registros de acceso para detectar intentos de explotación:

root@kitploit:~
# Patrón de registro Apache/Nginx
grep -E "option=com_ajax.*plugin=nrframework.*task=include" access.log

Regla WAF — Bloquear solicitudes que coincidan con:

root@kitploit:~
option=com_ajax.*plugin=nrframework.*task=include.*path=

Auditoría posterior al compromiso:

  • Verifique images/ y otros directorios escribibles para detectar archivos inesperados
  • Verifique la integridad de configuration.php y .htaccess
  • Revise los registros de errores del servidor para detectar advertencias de @include_once

Remediación

  1. Actualice nrframework a la versión 6.0.38 o posterior inmediatamente
  2. El parche elimina ajaxTaskInclude() por completo y lo reemplaza con un registro estricto de manejadores (AjaxHandlerRegistry)

Cronología

FechaEvento
2026-02Vulnerabilidad descubierta durante prueba de penetración autorizada
2026-02Se creó el exploit
2026-02Divulgación pública

Aviso Legal

Esta herramienta se proporciona solo para pruebas de seguridad autorizadas y fines educativos. Utilice este exploit únicamente contra sistemas para los que tenga permiso escrito explícito de prueba. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el uso indebido.

Autor

Yallasec — yallasec.com

Arcangelo Saracino — @arkango

Descargar herramienta