← back
CVE-2019-5591mediumunder attackransomwareCWE-306

CVE-2019-5591

83Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 6.5epss 18%
from disclosure to weapon1889 days
Published on NVDAug 14
1st PoC+1889d
CISA KEV+446d
exploitation probability
18%top 3% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

FortiOS, em configuração padrão até a versão 6.2.0, não valida a identidade do servidor LDAP ao estabelecer conexões LDAPS usadas para autenticação de usuários/administradores. Um atacante no mesmo segmento de rede (L2) pode se passar pelo servidor LDAP e capturar as credenciais que trafegam no bind, sem precisar de autenticação prévia. É uma falha de configuração, não de código — o dano real depende de o ambiente usar LDAP para autenticação no FortiGate e de o atacante ter acesso ao mesmo subnet.

Technical detail

A causa é a ausência, por padrão, da verificação de identidade do servidor LDAP (server-identity-check) nas conexões LDAPS configuradas em 'config user ldap'. Sem essa checagem, o FortiOS aceita qualquer certificado apresentado pelo peer durante o handshake TLS da sessão LDAPS, desde que a conexão seja criptografada — ele não confirma que o certificado pertence de fato ao servidor LDAP legítimo configurado. Isso equivale, na prática, à ausência de autenticação mútua no nível de aplicação: o canal é cifrado, mas contra o servidor errado. A CISA classifica a falha como CWE-306 (Missing Authentication for Critical Function).

O atacante controla apenas a posição na rede: precisa conseguir se interpor entre o FortiGate e o servidor LDAP real (via ARP spoofing, envenenamento de resolução de nome, ou qualquer técnica de MITM em camada 2/3 no mesmo subnet) e responder às tentativas de bind LDAP fingindo ser o servidor de diretório. Como o FortiOS não verifica o certificado do outro lado, a sessão LDAPS se completa normalmente do ponto de vista do dispositivo, e as credenciais enviadas pelo FortiGate (ou repassadas de um usuário fazendo login) chegam ao atacante em texto que ele consegue decifrar por controlar a ponta TLS.

O impacto declarado é só confidencialidade (C:H no vetor CVSS, sem I nem A): o atacante obtém informações sensíveis — essencialmente credenciais de bind LDAP — mas não demonstra, pela descrição, capacidade direta de alterar dados ou negar serviço a partir dessa falha isolada. O uso subsequente das credenciais capturadas é outro passo, fora do escopo desta CVE.

How it’s exploited

O vetor exigido é acesso à mesma rede local (AV:A) do FortiGate ou do tráfego LDAP relevante — não é explorável pela internet. Não é necessária autenticação (PR:N) nem interação do usuário (UI:N), e a complexidade de ataque é baixa (AC:L) uma vez que o atacante já está posicionado na rede. O pré-requisito real que a manchete omite é justamente este: presença no mesmo segmento L2/subnet, o que restringe a exploração a cenários com atacante interno, dispositivo comprometido na mesma VLAN, ou rede sem segmentação adequada entre o FortiGate e o servidor de diretório.

Na prática, o ataque consiste em se interpor no caminho de rede entre FortiOS e o servidor LDAP (por exemplo, técnicas de spoofing em camada 2) e responder no lugar do LDAP legítimo durante o processo de bind, aproveitando que o FortiOS aceita qualquer certificado apresentado. O resultado final é a captura de credenciais/dados de autenticação que trafegariam para o LDAP — sem exigir engenharia social ou exploração de memória, apenas posicionamento de rede e a ausência da validação de certificado.

A vulnerabilidade está no catálogo KEV da CISA (adicionada em 2021-11-03, prazo de correção 2022-05-03), indicando exploração confirmada em algum contexto observado pela agência, embora o próprio PSIRT da Fortinet classifique o campo 'Known Exploited' como 'No' em seu advisory original — há divergência entre a avaliação do fornecedor (2019) e a inclusão posterior no KEV (2021), que provavelmente reflete evidência de exploração obtida depois da publicação inicial.

Versions

Affected
FortiOS 6.2.0 e versões anteriores (incluindo a linha 6.0.3 a 6.2.0 citada explicitamente pelo advisory como necessitando habilitação manual).
Fixed in
FortiOS 6.2.1 e superiores corrigem por padrão em instalações novas (server-identity-check habilitado). Em upgrades a partir de 6.0.3–6.2.0, é necessário habilitar server-identity-check manualmente, pois o valor da configuração é preservado durante a atualização do firmware.

How to protect

A correção completa exige atualizar para FortiOS 6.2.1 ou superior E garantir que a opção server-identity-check esteja habilitada — instalações novas em 6.2.1+ já vêm com essa opção ativa por padrão, mas atualizações (upgrade) a partir de versões 6.0.3–6.2.0 preservam o valor anterior da configuração. Ou seja, só fazer upgrade de firmware não resolve: é necessário habilitar explicitamente server-identity-check antes ou depois do upgrade.

Para quem está em 6.0.3 até 6.2.0 e não pode atualizar imediatamente, o paliativo é habilitar manualmente a checagem via CLI dentro de 'config user ldap / edit ldap-server', o que exige que 'secure ldaps' e o certificado da CA do servidor LDAP ('ca-cert') estejam configurados — sem esses dois pré-requisitos a opção não pode ser ativada. O custo é operacional: requer ter o certificado correto do servidor LDAP disponível e importado no FortiGate, e qualquer inconsistência de certificado quebra a autenticação LDAP até ser corrigida.

Não funciona como mitigação apenas trocar a versão do FortiOS sem revisar a configuração existente, dado o comportamento de preservação de configuração no upgrade. Segmentação de rede que isole o tráfego entre FortiGate e o servidor LDAP de hosts não confiáveis reduz a superfície de ataque (já que o vetor exige mesmo subnet), mas não substitui a correção de configuração — é controle compensatório, não fix.

How to detect

Não há uma assinatura de rede confiável e específica para esta falha, pois o problema é de configuração ausente, não de payload malicioso identificável. Sinais indiretos que podem indicar tentativa de exploração incluem: eventos de ARP spoofing ou envenenamento de resolução de nomes na mesma rede do FortiGate e do servidor LDAP, certificados apresentados na conexão LDAPS que não correspondem ao esperado (visível em logs de auditoria TLS, se houver captura), e falhas de autenticação LDAP inesperadas ou binds partindo de origem/IP não usual. A ausência de logging de verificação de certificado no FortiOS quando server-identity-check está desabilitado é, em si, o principal indicador de exposição — não de ataque em curso.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
A Default Configuration vulnerability in FortiOS may allow an unauthenticated attacker on the same subnet to intercept sensitive information by impersonating the LDAP server.
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.