← voltar
CVE-2024-55591criticalsob ataqueransomwareCWE-288

CVE-2024-55591

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA, tem exploit funcional público e 1 grupo(s) de ameaça a utilizam.

ssvc Actcvss 9.6epss 98%
da publicação à arma2 dias
Publicada no NVD14 de jan.
1ª PoC+2d
CISA KEV14 de jan.
vítimas6 de ago.
probabilidade de exploração
98%top 1% das CVEs
exploração observada
simCISA + VulnCheck
1 grupo(s)15 exploit(s) público(s)
Apareceu em 1 incidente(s) que apuramos
Intranet Gov Brasil (gov.br)
Quem explora1

Grupos conhecidos por explorar esta vulnerabilidade (atribuição MITRE ATT&CK).

Ação exigida pela CISAprazo federal: 2025-01-21

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Resumo

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.

Detalhamento 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.

Como é explorada

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.

Versões

Afetadas
FortiOS 7.0.0 até 7.0.16; FortiProxy 7.0.0 até 7.0.19; FortiProxy 7.2.0 até 7.2.12.
Corrigidas em
FortiOS 7.0.17 ou superior; FortiProxy 7.0.20 ou superior; FortiProxy 7.2.13 ou superior. FortiOS 7.2, 7.4, 7.6, FortiOS 6.4 e FortiProxy 2.0, 7.4, 7.6 não são afetados.

Como se proteger

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.

Como 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.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
An Authentication Bypass Using an Alternate Path or Channel vulnerability [CWE-288] affecting FortiOS version 7.0.0 through 7.0.16 and FortiProxy version 7.0.0 through 7.0.19 and 7.2.0 through 7.2.12 allows a remote attacker to gain super-admin privileges via crafted requests to Node.js websocket module.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H/RL:O/RC:C
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.