CVE-2025-63307 – Cross-site Scripting (XSS) almacenado autenticado en laravel-file-manager v3.3.1
🧭 Resumen
Una vulnerabilidad de Cross-site Scripting (XSS) almacenado autenticado en laravel-file-manager v3.3.1 y versiones anteriores permite a los atacantes con acceso a la interfaz del administrador de archivos inyectar y persistir código JavaScript arbitrario en los archivos subidos o creados.
Al subir un archivo .html o .svg especialmente manipulado que contenga JavaScript malicioso, o al crear y editar directamente dicho archivo dentro del administrador de archivos, los atacantes pueden lograr un XSS almacenado que se ejecuta cuando cualquier otro usuario autenticado o administrador ve el archivo a través de la interfaz web.
🧱 Componente afectado
- Proyecto:
laravel-file-manager
- Componente: Funcionalidad de subida, creación y renderizado de archivos (p. ej.,
FileManagerController.php)
- Versión afectada: v3.3.1 y anteriores
🎯 Vectores de ataque
- Autenticarse con una cuenta que tenga permiso para subir, crear o renombrar archivos a través de la interfaz del administrador de archivos.
- Subir o crear un archivo con extensión .svg o .html que contenga JavaScript malicioso
- La aplicación almacena este archivo sin validar su contenido ni sanear los scripts incrustados.
- Cuando otro usuario (como un administrador o mantenedor del repositorio) ve o previsualiza el archivo en su navegador, el JavaScript malicioso se ejecuta en el contexto del dominio de la aplicación.
- El script puede entonces realizar acciones como el secuestro de sesión, CSRF o el robo de datos sensibles del navegador de la víctima.
💥 Impacto
- XSS almacenado: ejecución persistente de JavaScript dentro del origen de la aplicación.
- Secuestro de sesión y toma de control de cuentas: los atacantes pueden robar cookies o realizar acciones en nombre de la víctima.
- Phishing / UI Redressing: los scripts inyectados pueden suplantar elementos de la interfaz o redirigir a los usuarios a sitios maliciosos.
- Exposición de datos sensibles: acceso a la información dentro de la aplicación accesible a través de la sesión de la víctima.
CVSS v3
Puntuación base: 8.1
Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
Severidad: Alta
- Implementar una validación y filtrado estrictos del tipo de contenido (content-type) en el servidor para los archivos subidos.
- Denegar o sanear las subidas de archivos .html, .svg u otros formatos capaces de contener contenido activo.
- Servir los archivos subidos por los usuarios con la cabecera
Content-Disposition: attachment o desde un dominio/subdominio separado y no ejecutable.
- Aplicar codificación de salida y saneamiento antes de renderizar contenido controlado por el usuario en el navegador.
🙏 Créditos
Descubierto y reportado por: Chayawat Jeamprasertboon, Thanakorn Boontem, Sahapon Kanajanothai y Theethat Thamwasin