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-48908-PoC — PoC de RCE no autenticada para CVE-2026-48908 — SP Page Builder for Joomla (≤ 6.6.1): carga arbitraria de archivos mediante asset.uploadCustomIcon. Autolimpieza, protegido por token. Solo para pruebas autorizadas. | Kitploit
Herramientas/GitHubGitHub/papageo75/cve-2026-48908-poc
Generación de PayloadsAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHub
papageo75/cve-2026-48908-poc

CVE-2026-48908-PoC

PoC de RCE no autenticada para CVE-2026-48908 — SP Page Builder for Joomla (≤ 6.6.1): carga arbitraria de archivos mediante asset.uploadCustomIcon. Autolimpieza, protegido por token. Solo para pruebas autorizadas.

Ver Repositorio
1525hace 2 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-48908 — SP Page Builder (Joomla) RCE no autenticado

Prueba de concepto (PoC) para CVE-2026-48908, una vulnerabilidad crítica (CVSS 4.0 = 10.0) de ejecución remota de código no autenticada en el componente SP Page Builder (com_sppagebuilder) para Joomla, de JoomShaper.

CVECVE-2026-48908
DebilidadCWE-284 Control de acceso inadecuado → Subida arbitraria de archivos no autenticada → RCE
ComponenteSP Page Builder (com_sppagebuilder) para Joomla
Afectados1.0.0 – 6.6.1
Corregido en6.6.2
Privilegios requeridosNinguno (pre-autenticación)
Interacción del usuarioNinguna

Descripción

SP Page Builder expone la tarea del controlador asset.uploadCustomIcon para gestionar la subida de un paquete de fuentes de iconos personalizado:

root@kitploit:~
index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon

En las versiones afectadas, esta tarea es accesible sin autenticación y sin un token anti-CSRF válido. Acepta un archivo ZIP (campo multipart custom_icon) y extrae su contenido en un directorio servido públicamente por web dentro de la raíz del documento:

root@kitploit:~
/media/com_sppagebuilder/assets/iconfont/<nombre>/   (incluyendo la subcarpeta fonts/)

Debido a que la subida es accesible pre-autenticación y los archivos extraídos terminan en la raíz web, un atacante puede escribir archivos controlados por él en una ubicación navegable y acceder a ellos por HTTP.

Lograr la ejecución de código a pesar del filtro de extensiones

Algunas compilaciones añaden un filtro de nombres de archivo del lado del servidor sobre las entradas del archivo. Esta PoC vence a una implementación común del mismo con una cadena de tres pasos:

  1. Lista negra sensible a mayúsculas. El filtro rechaza .php, .phtml, .phar, .php3–.php8, .pht, .inc, … en minúsculas, pero no normaliza las mayúsculas, por lo que .PHP (y otras variantes con mayúsculas combinadas) y .htaccess pasan el filtro.
  2. Manejador del servidor web sensible a mayúsculas. Un manejador PHP de Apache por defecto (<FilesMatch "\.php$">) solo ejecuta .php en minúsculas, así que un .PHP subido se sirve inicialmente como texto fuente, no se ejecuta.
  3. Sobrescritura .htaccess. Un .htaccess (que la lista negra tampoco detecta) que contenga AddType application/x-httpd-php .PHP se deja junto al payload. Cuando AllowOverride lo permite, esto registra .PHP como PHP y el shell subido se ejecuta.

La PoC siempre empaqueta una estructura de fuente de iconos válida (selection.json, style.css, fonts/<nombre>.ttf) para que la subida sea aceptada, y luego añade el shell.

Adaptativa: recorre una lista de extensiones ejecutables por PHP (primero la de menor huella), y luego un respaldo con .htaccess, deteniéndose en la primera que realmente ejecuta código:

  1. Subidas directas de un solo archivo — fonts/<shell>.<ext> para cada una de php, php3, php4, php5, php7, pht, phtml, phar, PHP, pHp, Php. Sin .htaccess. Diferentes filtros de SP Page Builder bloquean conjuntos distintos, y diferentes configuraciones de Apache ejecutan extensiones distintas; por eso esto encuentra cualquier combinación que el objetivo permita y ejecute.
  2. fonts/.htaccess + fonts/<shell>.PHP (respaldo) — solo si todos los intentos directos fallan. El .htaccess dejado en el servidor (AddType … .PHP) fuerza a que un .PHP en mayúsculas se ejecute cuando AllowOverride lo permite (esto es lo que necesitan los hosts estilo 5.4.6).

Se detiene en el primer método que se ejecuta e indica cuál funcionó. Cada subida aceptada queda registrada, por lo que --cleanup elimina todas (varios intentos pueden dejar directorios de solo escritura).

Dependiendo de la versión y del endurecimiento del servidor, el resultado varía, y la PoC lo indica explícitamente (ver Resultados más abajo): RCE completa, solo escritura de archivos (PHP deshabilitado / AllowOverride None), parcheado (solo admin), o no vulnerable.

Requisitos

root@kitploit:~
pip install -r requirements.txt   # requests

Uso

root@kitploit:~
# confirmar la vulnerabilidad y probar la ejecución de código (ejecuta `id`)
python3 sppb_rce.py https://target.example

# ejecutar un comando específico
python3 sppb_rce.py --url target.example -c "uname -a"

# pseudo-shell interactivo
python3 sppb_rce.py https://target.example --shell

# solo comprobar; no ejecutar ningún comando
python3 sppb_rce.py https://target.example --check

# eliminar el directorio de payload subido después
python3 sppb_rce.py https://target.example --cleanup

El objetivo puede indicarse como argumento posicional o mediante --url, con o sin esquema.

Ejemplo (anonimizado)

root@kitploit:~
[*] target   : https://target.example
[*] endpoint : index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
[*] try .php            -> rechazado por el filtro
[*] try .php3           -> rechazado por el filtro
...
[*] try .PHP            -> subido, no ejecutado
[*] try .htaccess+.PHP  -> EJECUTADO
[+] EJECUCIÓN DE CÓDIGO CONFIRMADA vía '.htaccess+.PHP' (echo 7*6 -> 42)
[*] running: id
------------------------------------------------------------
uid=33(www-data) gid=33(www-data) groups=33(www-data)
------------------------------------------------------------
[*] cleanup: hecho (4 directorios)

Resultados (y códigos de salida)

La PoC siempre indica el veredicto para el objetivo:

SalidaSignificadoSalida
CODE EXECUTION CONFIRMED via '<método>'Vulnerable — RCE no autenticado completo0
[~] PARTIALLY VULNERABLE — unauth file-write works, but PHP did NOT executeSolo escritura de archivos (AllowOverride None / PHP deshabilitado en /media)3
[-] TARGET NOT VULNERABLE — SP Page Builder is patched (6.6.2+)Parcheado — la subida ahora requiere autenticación de admin1
[-] TARGET NOT VULNERABLE — every upload was rejected, or SP Page Builder is absent/patchedNo explotable / componente no presente2

Características de seguridad

  • El web shell dejado en el servidor está protegido por un token aleatorio por ejecución y devuelve 404 a cualquiera que no lo tenga; no es una puerta trasera abierta a todo el mundo.
  • --cleanup elimina el directorio de payload que creó.
  • Las acciones por defecto son benignas (id, un marcador aritmético).

Mitigación

  1. Actualice SP Page Builder a 6.6.2 o posterior (añade autenticación, autorización y comprobaciones CSRF a la tarea de subida). Esta es la corrección principal.
  2. Defensa en profundidad en el servidor web:
    • Deshabilite la ejecución de PHP en los directorios de subida (/media/, /images/, /tmp) mediante el pool de FPM o php_admin_flag engine off.
    • Establezca AllowOverride None en esos directorios para que un .htaccess dejado en el servidor no pueda re-activar manejadores.
    • Use una lista blanca (allow-list) insensible a mayúsculas para las extensiones de subida, nunca una lista negra.
  3. Revisión asumiendo la brecha (assume-breach): busque .php/.PHP inesperados en media/.../iconfont/, cuentas nuevas de Súper Usuario y gestores de archivos plantados.

Referencias

  • NVD — CVE-2026-48908
  • Registro de CVE.org — CVE-2026-48908
  • Informe técnico — SP Page Builder uploadCustomIcon RCE (mySites.guru)
  • Proveedor — JoomShaper SP Page Builder (corrección de seguridad en 6.6.2)
  • SP Page Builder — Directorio de Extensiones de Joomla

Palabras clave

Exploit de Joomla SP Page Builder · com_sppagebuilder RCE no autenticado · PoC de CVE-2026-48908 · asset.uploadCustomIcon subida arbitraria de archivos · ejecución remota de código en Joomla · script de exploit para pentest.

AVISO LEGAL

Este software se publica solo con fines educativos y para pruebas de seguridad autorizadas — por ejemplo, pruebas de penetración para las que tiene permiso por escrito, programas de bug bounty que incluyan el objetivo dentro del alcance, competiciones CTF y sus propios sistemas de laboratorio.

Acceder, modificar o interrumpir sistemas informáticos sin autorización es ilegal en la mayoría de las jurisdicciones. Usted es única y enteramente responsable de sus propias acciones. Al usar, descargar o distribuir este código acepta que:

  • lo usará solo contra sistemas que le pertenecen o sobre los que tiene permiso explícito y documentado para probar;
  • los autores y colaboradores no aceptan ninguna responsabilidad por daños, pérdida de datos, interrupción del servicio o consecuencias legales derivadas del uso o mal uso de este código;
  • este material se proporciona "TAL CUAL", sin garantía de ningún tipo, expresa o implícita.

Si no está de acuerdo con estos términos, no use este software. Como cualquier exploit/PoC disponible públicamente, se comparte de buena fe para ayudar a los defensores a detectar, entender y mitigar la vulnerabilidad; lo que haga con él es responsabilidad suya.

Licencia

MIT — ver LICENSE.

Descargar herramienta