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 — Exploit de prueba de concepto para CVE-2026-48908, un RCE no autenticado en Joomla SP Page Builder mediante carga arbitraria de archivos, con entrega de payload adaptativa y limpieza. | Kitploit
Herramientas/GitHubGitHub/bayu06802/cve-2026-48908
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubbayu06802/cve-2026-48908

CVE-2026-48908

Exploit de prueba de concepto para CVE-2026-48908, un RCE no autenticado en Joomla SP Page Builder mediante carga arbitraria de archivos, con entrega de payload adaptativa y limpieza.

Ver Repositorio
1hace 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

Exploit de prueba de concepto 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 Improper Access Control → Subida arbitraria de archivos no autenticada → RCE
ComponenteSP Page Builder (com_sppagebuilder) para Joomla
Versiones afectadas1.0.0 – 6.6.1
Corregido en6.6.2
Privilegios requeridosNinguno (preautenticación)
Interacción del usuarioNinguna

Descripción

SP Page Builder expone la tarea de controlador asset.uploadCustomIcon para gestionar la subida de un paquete 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 bajo la raíz del documento:

root@kitploit:~
/media/com_sppagebuilder/assets/iconfont/<name>/   (including the fonts/ subfolder)

Dado que la subida es accesible antes de la autenticación y los archivos extraídos se sitúan en la raíz web, un atacante puede escribir archivos controlados por él en una ubicación navegable y acceder a ellos por HTTP.

Cómo lograr la ejecución de código a pesar del filtro de extensiones

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

  1. Lista negra que distingue mayúsculas de minú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.
  2. Manejador del servidor web sensible a mayúsculas. Un manejador PHP de Apache por defecto (<FilesMatch "\.php$">) solo ejecuta .php en minúsculas, por lo que un .PHP subido inicialmente se sirve como texto fuente y no se ejecuta.
  3. Anulación mediante .htaccess. Un .htaccess (que la lista negra tampoco detecta) que contiene AddType application/x-httpd-php .PHP se coloca junto al payload. Cuando AllowOverride lo permite, esto registra .PHP como PHP y el shell subido se ejecuta.

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

Adaptativo: recorre una lista de extensiones ejecutables como PHP (primero las de menor huella), luego un .htaccess de respaldo, y se detiene en el primero 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. Los distintos filtros de SP Page Builder bloquean conjuntos diferentes, y las distintas configuraciones de Apache ejecutan extensiones diferentes, por lo que esto encuentra cualquier combinación que el objetivo permita y ejecute.
  2. fonts/.htaccess + fonts/<shell>.PHP (respaldo) — solo si falla cada intento directo. El .htaccess colocado (AddType … .PHP) obliga a que un .PHP en mayúsculas se ejecute donde AllowOverride lo permita (esto es lo que necesitan los hosts estilo 5.4.6).

Se detiene en el primer método que ejecuta e indica cuál funcionó. Todas las subidas aceptadas quedan registradas, 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 el PoC lo indica explícitamente (consulte Resultados más abajo): RCE completo, solo escritura de archivos (PHP deshabilitado / AllowOverride None), parcheado (solo administradores) o no vulnerable.

Requisitos

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

Uso

root@kitploit:~
# confirm the vulnerability and prove code execution (runs `id`)
python3 sppb_rce.py https://target.example

# run a specific command
python3 sppb_rce.py --url target.example -c "uname -a"

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

# only check; run no command
python3 sppb_rce.py https://target.example --check

# remove the uploaded payload directory afterwards
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            -> rejected by filter
[*] try .php3           -> rejected by filter
...
[*] try .PHP            -> uploaded, not executed
[*] try .htaccess+.PHP  -> EXECUTED
[+] CODE EXECUTION CONFIRMED via '.htaccess+.PHP' (echo 7*6 -> 42)
[*] running: id
------------------------------------------------------------
uid=33(www-data) gid=33(www-data) groups=33(www-data)
------------------------------------------------------------
[*] cleanup: done (4 dirs)

Resultados (y códigos de salida)

El PoC siempre indica el veredicto para el objetivo:

SalidaSignificadoCódigo de salida
CODE EXECUTION CONFIRMED via '<method>'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 administrador1
[-] 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 colocado está protegido por un token aleatorio por ejecución y devuelve 404 a cualquiera que no lo tenga: no es una puerta trasera abierta al 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 superior (añade comprobaciones de autenticación, autorización y 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 colocado no pueda volver a habilitar manejadores.
    • Utilice una lista blanca que no distinga mayúsculas de minúsculas para las extensiones de subida, nunca una lista negra.
  3. Revisión asumiendo la brecha: busque .php/.PHP inesperados en media/.../iconfont/, nuevas cuentas de Super Usuario y administradores de archivos plantados.

Referencias

  • NVD — CVE-2026-48908
  • Registro de CVE.org — CVE-2026-48908
  • Análisis 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 SP Page Builder para Joomla · RCE no autenticado en com_sppagebuilder · PoC de CVE-2026-48908 · subida arbitraria de archivos en asset.uploadCustomIcon · ejecución remota de código en Joomla · script de exploit para pentest.

DESCARGO DE RESPONSABILIDAD

Este software se publica únicamente con fines educativos y para pruebas de seguridad autorizadas; por ejemplo, pruebas de penetración para las que tenga 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 totalmente responsable de sus propias acciones. Al usar, descargar o distribuir este código acepta que:

  • lo utilizará solo contra sistemas que le pertenecen o para los que tiene permiso explícito y documentado para probar;
  • el/los autor(es) y colaboradores no asumen 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 ocurre con cualquier exploit/PoC disponible públicamente, se comparte de buena fe para ayudar a los defensores a detectar, comprender y remediar la vulnerabilidad; lo que usted haga con él es su responsabilidad.

Licencia

MIT — consulte LICENSE.

Descargar herramienta