CVE-2024-55591
Corrige ahora. Ella está bajo explotación confirmada por CISA, tiene exploit funcional público y 1 grupo(s) de amenaza la utilizan.
Grupos conocidos por explotar esta vulnerabilidad (atribución MITRE ATT&CK).
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumen
Falha de bypass de autenticação (CWE-288) no módulo websocket Node.js usado pela interface jsconsole de FortiOS e FortiProxy, que permite a um atacante remoto e não autenticado criar contas de administrador com privilégio super-admin. Está na KEV da CISA com exploração confirmada em campo desde antes da divulgação pública, e o EPSS próximo de 1.0 reflete isso — não é um CVSS 9.6 inflado, é exploração real e generalizada contra interfaces de gerência expostas.
Detalle técnico
FortiOS e FortiProxy expõem, na interface administrativa, um recurso chamado jsconsole que dá acesso a um CLI via navegador, implementado sobre um módulo websocket em Node.js. O problema é que esse canal websocket não vincula corretamente a sessão a uma autenticação prévia válida — é um caso clássico de CWE-288 (autenticação via canal alternativo): existe um caminho de acesso (o websocket) que não passa pelo fluxo normal de login, mas ainda assim permite executar operações administrativas equivalentes às de um usuário logado via jsconsole.
Com requisições forjadas para esse endpoint, o atacante consegue executar comandos como se estivesse numa sessão jsconsole legítima de um administrador, incluindo comandos de configuração (`config system admin`, criação de usuário local, alteração de firewall policy). O resultado prático observado em campo é a criação de uma conta admin ou de usuário local com nome gerado aleatoriamente e perfil `super_admin`.
O advisory original da Fortinet (FG-IR-24-535) originalmente descrevia duas rotas de exploração — a do websocket Node.js (esta CVE-2024-55591) e uma via requisições CSF (Security Fabric) forjadas, que depois recebeu CVE própria, CVE-2025-24472. São mecanismos distintos documentados no mesmo boletim; a mitigação de uma (desabilitar Security Fabric) não corrige a outra.
Cómo se explota
O vetor é rede: o atacante precisa apenas alcançar a interface administrativa HTTP/HTTPS do FortiOS/FortiProxy — não precisa de credencial válida, sessão ativa ou configuração não padrão além da interface de gerência estar acessível. A Fortinet nota um pré-requisito relevante que a manchete não deixa claro: o atacante precisa saber (ou adivinhar/força bruta) o nome de uma conta admin existente para completar a operação via jsconsole, já que o websocket em si não é o ponto de autenticação, mas o comando executado ainda referencia um usuário. Nomes de admin padrão previsíveis ('admin') facilitam; nomes não padrão dão alguma proteção, mas não bloqueiam brute-force contra esse canal.
Em campanhas reais observadas pela Fortinet, o atacante usa o acesso para criar uma conta admin ou usuário local com nome aleatório, adiciona esse usuário a um grupo SSL-VPN, ajusta políticas de firewall e endereços, e então usa a conta criada para abrir um túnel SSL-VPN até a rede interna — ou seja, o bypass de autenticação é o passo inicial de uma intrusão completa, não o objetivo final.
Os endereços IP registrados nos logs de exploração (srcip/dstip como 1.1.1.1, 127.0.0.1, 8.8.8.8, 8.8.4.4, 2.2.2.2, 13.37.13.37) são valores arbitrários definidos pelo próprio atacante como parâmetro da requisição, não IPs reais de origem — a Fortinet alerta explicitamente para não usá-los em bloqueios. IPs de origem de rede efetivamente associados à campanha incluem 45.55.158.47 (mais usado), 87.249.138.47, 155.133.4.175, 37.19.196.65, 149.22.94.37 e 158.255.215.126.
Versiones
Cómo protegerse
A correção definitiva é atualizar: FortiOS para 7.0.17 ou superior; FortiProxy 7.0.x para 7.0.20 ou superior; FortiProxy 7.2.x para 7.2.13 ou superior. Ramos FortiOS 7.2, 7.4, 7.6 e FortiProxy 2.0, 7.4, 7.6 não são afetados por esta CVE segundo a Fortinet.
Se a atualização não for imediata, o paliativo recomendado pelo fornecedor é desabilitar a interface administrativa HTTP/HTTPS, ou — se isso não for viável — restringir o acesso à interface de gerência via política local-in, permitindo apenas endereços IP de gestão confiáveis (criando um address group e duas local-in policies: uma allow para o grupo confiável, outra deny para "any"). A Fortinet é explícita em dizer que o recurso "trusthost" só produz efeito equivalente se absolutamente todas as contas GUI estiverem configuradas com ele — por isso as políticas local-in são a mitigação preferida, não o trusthost isolado.
O que não funciona como mitigação suficiente: usar apenas nomes de usuário admin não padrão. Isso dificulta um pouco o ataque, mas o próprio fornecedor reconhece que, como o websocket não é o ponto de autenticação, nada impede brute-force do nome de usuário — é proteção marginal, não controle compensatório confiável. Para o CSF request issue (CVE-2025-24472, mesmo advisory), a mitigação é desabilitar Security Fabric via `config system csf / set status disable`, mas isso não substitui a correção desta CVE.
Cómo detectar
A Fortinet publicou IOCs de log específicos: entrada de login com `ui="jsconsole"`, `method="jsconsole"`, `profile="super_admin"` e `msg="Administrator admin logged in successfully from jsconsole"`, geralmente com srcip/dstip arbitrários (1.1.1.1, 127.0.0.1, 2.2.2.2, 8.8.8.8, 8.8.4.4, 13.37.13.37) — esses IPs não devem ser usados para bloqueio, pois são forjados pelo atacante. Outro sinal é log de criação de objeto `system.admin` via `ui="jsconsole(127.0.0.1)"` com `cfgobj` e nome de usuário aparentemente aleatório (a Fortinet lista exemplos como Gujhmk, Ed8x4k, G0xgey, Pvnw81, Alg7c4, entre outros, além de nomes como 'watchTowr' e 'fortinet-support' usados por atacantes/pesquisadores).
Como indicador de rede, a Fortinet associa a campanha aos IPs de origem 45.55.158.47 (mais usado), 87.249.138.47, 155.133.4.175, 37.19.196.65, 149.22.94.37 e 158.255.215.126, mas não há garantia de que a lista seja exaustiva ou permaneça válida — infraestrutura de atacante rotaciona. Contas admin ou usuários locais recém-criados com nomes aleatórios, adicionados a grupos SSL-VPN sem justificativa administrativa, são o sinal mais confiável de exploração bem-sucedida.