Fortinet corrige vulnerabilidad crítica en FortiWeb que permite ejecutar comandos SQL no autorizados
Fortinet corrige vulnerabilidad crítica en FortiWeb que permite ejecutar comandos SQL no autorizados

Fortinet corrige vulnerabilidad crítica en FortiWeb que permite ejecutar comandos SQL no autorizados

Fortinet ha publicado correcciones para una falla de seguridad crítica afectando a su producto FortiWeb. Esta vulnerabilidad, identificada como CVE-2025-25257, podría permitir que un atacante no autenticado ejecute comandos arbitrarios de base de datos en instancias susceptibles.

Características de la vulnerabilidad

La falla tiene una puntuación CVSS de 9,6 sobre un máximo de 10. Según el aviso publicado por Fortinet, se trata de una neutralización indebida de elementos especiales utilizados en una vulnerabilidad de comando SQL (Inyección SQL) [CWE-89] en FortiWeb. Esto podría permitir que un atacante no autenticado ejecute código o comandos SQL no autorizados mediante solicitudes HTTP o HTTPS manipuladas.

Versiones afectadas y soluciones

La deficiencia afecta a las siguientes versiones de FortiWeb:

  • FortiWeb 7.6.0 a 7.6.3 (Actualizar a 7.6.4 o superior)
  • FortiWeb 7.4.0 a 7.4.7 (Actualizar a 7.4.8 o superior)
  • FortiWeb 7.2.0 a 7.2.10 (Actualizar a 7.2.11 o superior)
  • FortiWeb 7.0.0 a 7.0.10 (Actualizar a 7.0.11 o superior)

Como solución temporal hasta que se puedan aplicar los parches necesarios, se recomienda desactivar la interfaz administrativa HTTP/HTTPS.

Descubrimiento y análisis del problema

Kentaro Kawane, de GMO Cybersecurity, ha reconocido haber descubierto el problema. En un análisis publicado hoy, watchTowr Labs indicó que el problema radica en una función llamada "get_fabric_user_by_token", asociada al componente Fabric Connector, que actúa como puente entre FortiWeb y otros productos de Fortinet.

Esta función se invoca desde otra función llamada "fabric_access_check", que se llama desde tres puntos finales de API diferentes: /api/fabric/device/status, /api/v[0-9]/fabric/widget/[a-z]+ y /api/v[0-9]/fabric/widget.

El problema radica en que la entrada controlada por el atacante, transmitida a través de un encabezado de autorización de token de portador en una solicitud HTTP especialmente diseñada, se envía directamente a una consulta de base de datos SQL sin la debida limpieza para garantizar que no sea dañina ni contenga código malicioso.

Posibles consecuencias y correcciones

El ataque puede extenderse aún más integrando una sentencia SELECT ... INTO OUTFILE para escribir los resultados de la ejecución del comando en un archivo del sistema operativo subyacente, aprovechando que la consulta se ejecuta con el usuario "mysql".

La nueva versión de la función reemplaza la consulta de cadena de formato anterior con sentencias preparadas, un intento razonable de evitar la inyección directa de SQL.

Recomendaciones y contexto

Dado que las vulnerabilidades en los dispositivos Fortinet han sido explotadas por actores de amenazas en el pasado, es fundamental que los usuarios actualicen rápidamente a la última versión para mitigar los posibles riesgos.