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-27621 — CVE-2026-27621 - TypiCMS Core tiene Cross-Site Scripting (XSS) Almacenado mediante la carga de archivos SVG | Kitploit
Herramientas/GitHubGitHub/lukasz-rybak/cve-2026-27621
Análisis de VulnerabilidadesExplotación de Aplicaciones WebSeguridad WebPapers e InvestigaciónAprendizaje y Educación
GitHublukasz-rybak/cve-2026-27621

CVE-2026-27621

CVE-2026-27621 - TypiCMS Core tiene Cross-Site Scripting (XSS) Almacenado mediante la carga de archivos SVG

Ver Repositorio
1hace 5 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-27621: TypiCMS Core tiene Cross-Site Scripting (XSS) Almacenado mediante la carga de archivos SVG

Resumen

CampoDetalles
ID de CVECVE-2026-27621
GravedadMEDIA
AvisoVer Aviso
Descubierto porLukasz Rybak

Productos Afectados

  • typicms/core (versiones: < 16.1.7)

Clasificación CWE

  • CWE-79: Neutralización incorrecta de la entrada durante la generación de páginas web ('Cross-site Scripting')

Detalles

I. Resumen

Existe una vulnerabilidad de Cross-Site Scripting (XSS) Almacenado en el módulo de carga de archivos de TypiCMS. La aplicación permite a los usuarios con permisos de carga de archivos subir archivos SVG. Aunque existe una validación del tipo MIME, el contenido del archivo SVG no se sanitiza. Un atacante puede cargar un archivo SVG especialmente diseñado que contenga código JavaScript malicioso. Cuando otro usuario (como un administrador) ve o accede a este archivo a través de la aplicación, el script se ejecuta en su navegador, lo que conduce a un compromiso de la sesión de dicho usuario.

El problema se ve agravado por un error en la lógica de análisis del SVG, que puede provocar un error 500 si el SVG cargado no contiene un atributo viewBox. Sin embargo, esto no mitiga la vulnerabilidad XSS, ya que un atacante puede incluir fácilmente un atributo viewBox válido en su carga maliciosa.

II. Detalles de la vulnerabilidad

  • Tipo de vulnerabilidad: Cross-Site Scripting (XSS) Almacenado (CWE-79)
  • Componente afectado: TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php y TypiCMS\Modules\Core\Services\FileUploader.php.
  • Versiones afectadas: <= 16.0.5

La vulnerabilidad se origina en dos puntos principales:

  1. Validación de archivos permisiva: El FileFormRequest incluye explícitamente svg en la lista blanca de tipos MIME permitidos para la carga.
  2. Falta de sanitización del contenido: El servicio FileUploader guarda el archivo SVG en el servidor sin analizar ni sanitizar su contenido para eliminar elementos potencialmente maliciosos, como etiquetas <script> o manejadores de eventos on*.

Cuando el disco del sistema de archivos predeterminado está configurado como public, el archivo SVG cargado se almacena en un directorio de acceso público, lo que hace que sea trivial acceder al archivo mediante una URL directa y activar la carga útil XSS.

III. Prueba de concepto (PoC)

  1. Crear un archivo SVG malicioso: Cree un archivo llamado malicious.svg con el siguiente contenido. El atributo viewBox se incluye para evitar el error de análisis de la aplicación.

    root@kitploit:~
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
        <script>
            // A simple PoC to demonstrate the vulnerability
            alert('XSS in TypiCMS! Your session cookie is: ' + document.cookie);
        </script>
        <text x="10" y="50">If you see this, the script has run.</text>
    </svg>
    
  2. Cargar el archivo malicioso:

    • Inicie sesión en el panel de administración de TypiCMS como un usuario con permisos para cargar archivos.
    • Navegue al módulo "Archivos" (p. ej., /admin/files).
    • Cargue el archivo malicious.svg. La aplicación aceptará el archivo y lo almacenará. image
image
  1. Activar el XSS:
    • La aplicación proporcionará una URL pública para el archivo cargado, normalmente con el formato http://<your-site>/storage/files/malicious.svg.
    • Cualquier persona que navegue a esta URL verá el JavaScript incrustado ejecutado en su navegador.
    • Un atacante puede enviar este enlace a un usuario privilegiado (p. ej., un administrador). Cuando el administrador haga clic en el enlace, sus cookies de sesión pueden ser robadas, o el atacante puede realizar acciones en su nombre.
image
image

IV. Impacto

La explotación exitosa de esta vulnerabilidad permite a un atacante ejecutar JavaScript arbitrario en el contexto del navegador de la víctima. Aunque el uso de la bandera HttpOnly en las cookies de sesión impide el robo directo del ID de sesión mediante document.cookie, el atacante puede lograr igualmente un compromiso total de la cuenta de la víctima realizando acciones en su nombre.

El impacto incluye:

  • Toma de control de la cuenta mediante falsificación de acciones: El script del atacante puede realizar solicitudes autenticadas a la API de la aplicación desde el navegador de la víctima. Esto permite al atacante realizar cualquier acción para la que la víctima esté autorizada, como:

    • Crear una nueva cuenta de administrador para el atacante.
    • Cambiar la dirección de correo electrónico y la contraseña de la víctima.
    • Eliminar o modificar todo el contenido, los usuarios y la configuración.
  • Divulgación de información sensible: El script puede leer el contenido de cualquier página que la víctima vea dentro del panel de administración. Esto incluye listas de usuarios (con nombres y correos electrónicos), ajustes privados de la aplicación y otros datos sensibles, que pueden ser exfiltrados a un servidor controlado por el atacante.

  • Phishing e ingeniería social: El script puede manipular la interfaz del panel de administración para mostrar formularios de inicio de sesión falsos que engañen al usuario para que vuelva a introducir sus credenciales, o redirigirlo a un sitio web malicioso.

  • Registro de pulsaciones de teclas: El script puede capturar cualquier información que la víctima escriba en los formularios de la página comprometida.

Debido a que el atacante puede realizar cualquier acción como administrador autenticado, esta vulnerabilidad conduce efectivamente a un compromiso total de la aplicación, incluso sin acceso directo a la cookie de sesión. El riesgo es Alto.

V. Parches y mitigaciones recomendados

Se recomienda aplicar un enfoque de defensa en profundidad para mitigar esta vulnerabilidad.

  1. Corrección principal: Sanitizar el contenido SVG: La solución más robusta es sanitizar los archivos SVG en el momento de la carga. Antes de guardar el archivo, debe analizarse para eliminar todos los elementos potencialmente peligrosos, incluidas las etiquetas <script>, <style>, <foreignObject> y todos los atributos de eventos on*. Esto puede lograrse utilizando una biblioteca dedicada de sanitización de SVG.

  2. Corrección secundaria: Deshabilitar las cargas SVG: Si la carga de SVG no es una funcionalidad crítica para la aplicación, la solución más simple y segura es deshabilitarla por completo. Esto puede hacerse eliminando 'svg' de la lista de tipos MIME permitidos en TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php.

    root@kitploit:~
    // In FileFormRequest.php
    // BEFORE:
    $fileRule = 'mimes:jpeg,gif,png,...,svg,...|max:...';
    
    // AFTER:
    $fileRule = 'mimes:jpeg,gif,png,...,pdf,...|max:...'; // Removed 'svg'
    
  3. Endurecimiento - Política de Seguridad de Contenido (CSP): Implemente un encabezado estricto de Política de Seguridad de Contenido (CSP) para la aplicación. Una CSP bien configurada puede evitar la ejecución de scripts en línea, lo que mitigaría el impacto de esta vulnerabilidad XSS.

  4. Endurecimiento - Servir el contenido de usuario desde un dominio separado: Sirva todos los archivos subidos por los usuarios desde un dominio separado, sin cookies. Esta es una medida de seguridad altamente eficaz que aísla el contenido generado por el usuario de la aplicación principal, impidiendo que los scripts accedan a las cookies de sesión o interactúen con el DOM de la aplicación.

Referencias

  • https://github.com/TypiCMS/Core/security/advisories/GHSA-xfvg-8v67-j7wp
  • https://nvd.nist.gov/vuln/detail/CVE-2026-27621
  • https://github.com/TypiCMS/Core/commit/d480a0be1e8e7c0600bb9a325bb11920ee66497d
  • https://github.com/advisories/GHSA-xfvg-8v67-j7wp

Aviso legal

Este CVE fue divulgado de manera responsable siguiendo las prácticas de divulgación coordinada de vulnerabilidades. La información aquí proporcionada tiene fines educativos y defensivos únicamente.

Descargar herramienta