Vulnerabilidad Zero-Day en Node.js websocket Fortinet


Fortinet ha publicado una nueva vulnerabilidad de día cero identificada como CVE-2024-55591, la cual ha sido clasificada con un puntaje CVSS de 9.6, convirtiéndola en una vulnerabilidad de carácter crítico.
La vulnerabilidad en cuestión reside en una falla en el módulo Node.js WebSocket, que permite un "Authentication bypass". Esta vulnerabilidad afecta a FortiProxy y a FortiOS, permitiendo al atacante que logre explotarla obtenga privilegios administrativos y comprometa redes corporativas.
Fortinet ha confirmado que esta vulnerabilidad está siendo explotada activamente por actores maliciosos, por lo que se recomienda revisar los indicadores de compromiso para verificar si la red ha sido afectada. También se ha observado comportamiento malicioso de la siguiente manera:

  • Creación de una cuenta de administrador con un nombre de usuario aleatorio.
  • Creación de una cuenta de usuario local en el dispositivo con un nombre de usuario aleatorio.
  • Creación de un grupo de usuarios o adición del usuario local anterior a un grupo de usuarios SSLVPN existente.
  • Modificaciones o adiciones en las configuraciones, tales como políticas de firewall y direcciones del cortafuegos.
  • Inicio de sesión en SSLVPN con los usuarios locales agregados previamente para establecer un túnel hacia la red interna.

Los usuarios creados por el atacante presentaban nombres aleatorios, como los siguientes:
Gujhmk, ed8x4k, g0xgey, pvnw81, alg7c4, ypda8a, kmi8p4, 1a2n6t, 8ah1t6, m4ix9f

Workaround:

La recomendación inicial es actualizar la versión de FortiOS y FortiProxy a una versión que no sea afectada, pero, si no se puede actualizar a una versión parchada se insta a aplicar un workaround, dicho workaround es el siguiente:

Deshabilitar la interfaz administrativa de HTTP/HTTPS

En caso de no poder hacer lo anterior limitar el acceso solamente para IPS de confianza mediante políticas locales de la siguiente forma:

Config firewall adress
Edit “Direcciones_de_confianza”
set subnet
end

Acto seguido crear un Grupo de direcciones:
config firewall addrgrp
Edit “MGMT_IPs”
set member “Direcciones_de_confianza”
end

Después se tiene que crear la política local para restringir el acceso solo a un grupo predefinido en una interfaz de administración con la siguiente configuración:
config firewall local-in-policy

edit 1
set intf port1
set srcaddr "MGMT_IPs"
set dstaddr "all"
set action accept
set service HTTPS HTTP
set schedule "always"
set status enable
next

edit 2
set intf "all"
set srcaddr "all"
set dstaddr "all"
set action deny
set service HTTPS HTTP
set schedule "always"
set status enable
end

Si se están usando otros puertos que no sean los defaults se tiene que crear una GUI de acceso administrativo apropiada para estos de la siguiente forma:

config firewall service custom
edit GUI_HTTPS
set tcp-portrange 443
next

edit GUI_HTTP
set tcp-portrange 80
end

Este workaround hace lo mismo que la función de Trustedhost solamente cuando todos los usuarios de la GUI estan configurados con ella, de otra forma se recomienda aplicar el workaround antes descrito.

Indicadores de Compromiso:

Las siguientes entradas de registro también se identificaron como IOC:

Following login activity log with random scrip and dstip:
type="event" subtype="system" level="information" vd="root" logdesc="Admin login successful" sn="1733486785" user="admin" ui="jsconsole" method="jsconsole" srcip=1.1.1.1 dstip=1.1.1.1 action="login" status="success" reason="none" profile="super_admin" msg="Administrator admin logged in successfully from jsconsole"

Following admin creation log with seemingly randomly generated user name and source IP:
type="event" subtype="system" level="information" vd="root" logdesc="Object attribute configured" user="admin" ui="jsconsole(127.0.0.1)" action="Add" cfgtid=1411317760 cfgpath="system.admin" cfgobj="vOcep" cfgattr="password[*]accprofile[super_admin]vdom[root]" msg="Add system.admin vOcep"

Direcciones ip usadas por el atacante:

  • 45.55.158.47
  • 87.249.138.47
  • 155.133.4.175
  • 37.19.196.65
  • 149.22.94.37

Versiones Afectadas

  • FortiOS 7.0-7.0.16
  • Fortiproxy 7.2-7.2.12
  • Fortiproxy 7.0-7.2.19

Recomendaciones

  • Actualizar la versión de FortiOS y/o Fortiproxy según con la que se cuente:
    FortiOS 7.0-7.0.16 actualizar a la versión 7.0.17 o superior
    Fortiproxy 7.2-7.2.12 actualizar a la versión 7.2.13 o superior
    Fortiproxy 7.0-7.2.19 actualizar a la versión 7.0.20 o superior
  • Establecer controles de acceso SSH basados en la red para minimizar el riesgo de ataque
  • Auditar herramientas de acceso remoto. (NIST CSF, 2024)
  • Revisar logs para de ejecución de software de acceso remoto. (NIST CSF, 2024)
  • Limitar estrictamente el uso de los protocolos SMB y RDP.
  • Realizar auditorías de seguridad. (NIST CSF, 2024)
  • Deshabilitar los servicios y procesos no requeridos para reducir los vectores de ataque. (NIST CSF, 2024)
  • Tener filtros de correo electrónico y spam.
  • Concientizar a los empleados sobre los métodos de Phishing e Ingeniería social.
  • Realizar copias de seguridad, respaldos o back-ups constantemente.
  • Mantener los respaldos desconectados de la red de la organización, verificando constantemente la confidencialidad, integridad y disponibilidad de estos.
  • Revisar continuamente los privilegios de los usuarios.
  • Tener una solución EDR robusta configurada adecuadamente basada en las mejores prácticas (de acuerdo con documentación de fabricante).
  • Habilitar la autenticación multifactor.

Referencias

  1. Fortinet. (2025, Enero 14) Authentication bypass in Node.js websocket module. Recuperado el 14 de enero del 2025 en: https://www.fortiguard.com/psirt/FG-IR-24-535
  2. Gatlan, S. (2025, Enero 14) Fortinet warns of auth bypass zero-day exploited to hijack firewalls. Recuperado el 14 de enero del 2025 en: https://www.bleepingcomputer.com/news/security/fortinet-warns-of-auth-bypass-zero-day-exploited-to-hijack-firewalls/

El nombre es requerido.
El email es requerido.
El email no es válido.
El comentario es requerido.
El captcha es requerido.



Comentarios