Vulnerabilidad crítica expone a Fortinet FortiWeb a una toma de control total (CVE-2025-25257)

WatchTowr Labs revela CVE-2025-25257, una inyección SQL crítica de FortiWeb que permite la ejecución remota de código no autenticado. Instale parches en sus dispositivos FortiWeb 7.0, 7.2, 7.4 y 7.6 de inmediato para evitar la vulnerabilidad total del sistema. ¡Actualice AHORA!
Los investigadores de ciberseguridad han descubierto una debilidad importante, CVE-2025-25257 , en una parte clave del software de seguridad de Fortinet: FortiWeb Fabric Connector , vital para vincular el firewall de aplicaciones web de Fortinet (FortiWeb) con otras herramientas de seguridad, lo que permite protecciones dinámicas.
La vulnerabilidad fue reportada inicialmente a Fortinet por Kentaro Kawane, de GMO Cybersecurity, de Ierae. La demostración posterior de cómo escalar la vulnerabilidad hasta el control total del sistema fue realizada y publicada por watchTowr Labs, y los hallazgos se compartieron en exclusiva con Hackread.com.
Se trata de una falla de “inyección SQL no autenticada en la GUI”, lo que significa que los atacantes pueden explotar una debilidad en la interfaz administrativa del sistema sin necesidad de un nombre de usuario o contraseña, engañando al sistema FortiWeb para que ejecute sus propios comandos dañinos enviando solicitudes especialmente diseñadas a través de Internet.
WatchTowr Labs descubrió este problema oculto al comparar la versión 7.6.4 de FortiWeb con una versión anterior, la 7.6.3. Identificaron la vulnerabilidad en la función get_fabric_user_by_token del programa /bin/httpsd
. Esta función, diseñada para inicios de sesión desde otros dispositivos Fortinet, como los firewalls FortiGate, no verificaba correctamente la información entrante, lo que permitía la inyección de comandos dañinos mediante el encabezado "Authorisation: Bearer" en las solicitudes a /api/fabric/device/status
.
Los primeros intentos fueron complicados debido a limitaciones como la prohibición de espacios en los comandos. Sin embargo, los investigadores lo solucionaron ingeniosamente utilizando la sintaxis de comentarios de MySQL (/**/)
. Esto permitió que la inyección SQL fuera exitosa, incluso permitiéndoles omitir por completo la comprobación de inicio de sesión con un simple comando 'or'1'='1
, que devolvía un mensaje "200 OK" confirmando el éxito.
Los investigadores lograron escalar esta inyección SQL inicial a la Ejecución Remota de Código (RCE). Lo lograron mediante la sentencia INTO OUTFILE de MySQL para escribir archivos directamente en el directorio del sistema. Un hallazgo crucial fue que el proceso de la base de datos se ejecutaba con privilegios de root, lo que le permitía colocar archivos dañinos prácticamente en cualquier lugar.
Aunque la ejecución directa no era posible, aprovecharon un script de Python existente en la carpeta /cgi-bin
que se ejecutaba automáticamente con privilegios elevados. Al escribir un archivo especial de Python (.pth) en un directorio específico, pudieron forzar al sistema a ejecutar su propio código Python, lo que demostró una vulnerabilidad completa del sistema.
Si se explota, un atacante podría obtener el control total de su dispositivo FortiWeb y, potencialmente, de otros sistemas conectados. Esto conlleva el riesgo de robo de datos confidenciales, interrupción del servicio o el uso de sus sistemas para futuros ataques, lo que conlleva importantes daños financieros, legales y de reputación.
Para mantenerse protegido, actualice inmediatamente su sistema FortiWeb a la versión parcheada . Si no es posible realizar una actualización inmediata, Fortinet sugiere deshabilitar temporalmente la interfaz administrativa HTTP/HTTPS como solución alternativa.
Aquí están los detalles de las versiones de FortiWeb afectadas:
- 7.6.0 a 7.6.3 (actualizar a 7.6.4 o más reciente)
- 7.4.0 a 7.4.7 (actualizar a 7.4.8 o más reciente)
- 7.2.0 a 7.2.10 (actualizar a 7.2.11 o más reciente)
- 7.0.0 a 7.0.10 (actualizar a 7.0.11 o más reciente)
HackRead