CVE-2025-56399 – Ejecución remota de código autenticada en laravel-file-manager v3.3.1
🧭 Resumen
Una vulnerabilidad de ejecución remota de código (RCE) autenticada en laravel-file-manager v3.3.1 y versiones anteriores permite a los atacantes con acceso a la interfaz del administrador de archivos ejecutar código arbitrario en el servidor. Al cargar un archivo con una extensión no PHP permitida (p. ej., .png, .pdf) que contenga código PHP malicioso y renombrarlo a una extensión .php, o al crear y editar directamente un archivo .php, los atacantes pueden lograr RCE cuando se accede al archivo mediante una URL pública.
🧱 Componente afectado
- Proyecto:
laravel-file-manager
- Componente: API de carga / renombrado de archivos
- Versión afectada: v3.3.1 y anteriores
🎯 Vectores de ataque
- Autenticarse con una cuenta que tenga acceso a la funcionalidad de carga o creación de archivos del administrador de archivos.
- Cargar un archivo (p. ej., shell.png) que contenga código PHP malicioso (p. ej., ) a través de la interfaz o API de carga del administrador de archivos.
- Usar la API o interfaz de renombrado para cambiar la extensión del archivo de shell.png a shell.php.
- Acceder al archivo mediante una URL pública (p. ej., https://server-ip-address/storage/shell.php?c=id) para ejecutar la carga útil PHP.
- Alternativamente, usar la función "Create File" para crear un archivo (p. ej., shell.php) y luego usar la función de edición para insertar código PHP malicioso y acceder a él mediante una URL pública.
💥 Impacto
- Ejecución remota de código (RCE): los atacantes pueden ejecutar comandos arbitrarios en el contexto del servidor web.
- Compromiso del sistema: dependiendo de la configuración del servidor, esto podría conducir al compromiso total de la aplicación web y del sistema host.
- Riesgo crítico: alto impacto en la confidencialidad, integridad y disponibilidad del sistema afectado.
CVSS v3
Puntuación base: 8.8
Vector: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Severidad: Alta
- Implementar la validación en el servidor de los tipos MIME y los bytes mágicos de los archivos para garantizar que los archivos cargados coincidan con sus extensiones.
- Aplicar una lista blanca estricta de extensiones de archivo permitidas y rechazar extensiones ejecutables como .php.
- Restringir el renombrado de archivos para evitar cambiar a extensiones ejecutables sin validación adicional.
- Deshabilitar la ejecución de scripts/PHP en los directorios de carga.
🙏 Créditos
Descubierto y reportado por: Chayawat Jeamprasertboon, Thanakorn Boontem, Theethat Thamwasin