CVE-2025-65346 – Path Traversal autenticado desde la función UnZip que conduce a escritura arbitraria de archivos en laravel-file-manager v3.3.1
🧭 Resumen
Una vulnerabilidad de Path Traversal en la funcionalidad de descompresión/extracción de la aplicación afectada permite a un atacante escribir archivos en ubicaciones arbitrarias del sistema de archivos durante la extracción de un archivo. Debido a que la rutina de extracción no saneja las rutas de destino dentro de las entradas ZIP, un atacante puede crear archivos ZIP que contengan secuencias de traversal (p. ej., ../../routes) o rutas absolutas. Cuando la aplicación los procesa, estos archivos se extraen directamente a las ubicaciones especificadas con los permisos del proceso en ejecución.
Esta falla puede ser aprovechada para sobrescribir archivos existentes, plantar cargas útiles ejecutables o modificar el comportamiento de la aplicación, lo que potencialmente conduce a la ejecución remota de código.
🧱 Componente afectado
- Project:
laravel-file-manager
- Component: zip/archiving Functionf
- Affected version: v3.3.1 y anteriores
🎯 Vectores de ataque
- El atacante sube o proporciona un archivo ZIP al endpoint de descompresión de la aplicación (la autenticación puede ser requerida o no dependiendo de la configuración).
- Manipula la carga útil de la solicitud UNZIP para incluir secuencias de directory traversal como
../../routes.
- La lógica de extracción del backend resuelve estas rutas sin validación y escribe los archivos directamente en esas ubicaciones.
- Los archivos existentes pueden sobrescribirse silenciosamente si los nombres de archivo coinciden.
- El atacante obtiene la capacidad de reemplazar archivos de la aplicación, escribir shells web o modificar archivos de configuración críticos.
💥 Impacto
- Escritura arbitraria de archivos: Se pueden escribir archivos en cualquier lugar que sea escribible por el usuario de la aplicación (p. ej., www-data).
- Sobrescritura de archivos: Los atacantes pueden sobrescribir archivos legítimos de la aplicación, incluyendo rutas, controladores o configuraciones.
- Ejecución remota de código: Al escribir cargas útiles ejecutables por la web (PHP, JSP, etc.) en la raíz web, el atacante puede lograr la ejecución completa de código.
- Compromiso de la aplicación: La modificación de puntos de entrada, como index.php, puede alterar la lógica del sitio o introducir puertas traseras persistentes.
- Escalada de privilegios (indirecta): Sobrescribir archivos de configuración/env puede exponer secretos que permitan un movimiento lateral adicional.
Gravedad: Crítica
Puntuación base: 9.1
Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
🛡️ Recomendación de remediación
- Implementar validación de ruta canónica: Normalizar las rutas de archivo solicitadas y aplicar una restricción estricta a la raíz de almacenamiento designada del proyecto.
- Rechazar cualquier ruta que contenga secuencias de traversal (
../, %2e%2e/, traversal anidado).
- Aplicar lógica de lista blanca del lado del servidor.
- Actualizar a una versión parcheada una vez que el proveedor publique una corrección que aborde esta debilidad de path traversal.
🙏 Créditos
Descubierto y reportado por: Theethat Thamwasin