CVE-2026-21643
Patch now. It under exploitation confirmed by CISA and has a working public exploit.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Summary
SQL injection não autenticada na interface administrativa (GUI) do FortiClientEMS 7.4.4, explorável via requisição HTTP para o endpoint /api/v1/init_consts. O Fortinet confirma exploração ativa no advisory e a CVE está no catálogo KEV da CISA com prazo de correção de apenas 3 dias — sinal de exploração em massa em curso, não de risco teórico.
Technical detail
A falha é CWE-89 (SQL Injection) no componente GUI/API administrativa do FortiClientEMS. Segundo a PoC pública, o vetor é o cabeçalho HTTP 'Site' enviado em uma requisição GET para /api/v1/init_consts: o valor do header é concatenado sem sanitização em uma consulta SQL, ao que tudo indica usado para compor o 'search_path' da conexão com o banco. As mensagens de erro e os payloads de teste (SELECT version(), pg_sleep(5), current_database()) indicam backend PostgreSQL.
O atacante controla integralmente o conteúdo do header Site, e o endpoint não exige autenticação — daí AV:N/AC:L/PR:N/UI:N no vetor CVSS. A injeção é do tipo error-based/time-based conforme demonstrado na PoC, o que já permite extração de dados e mapeamento do schema.
A descrição oficial e o CVSS impact (C:H/I:H/A:H) apontam para execução de código, mas a própria PoC pública ressalva que 'RCE completo geralmente exige encadeamento com funções do PostgreSQL ou exploração adicional' — ou seja, a SQLi por si garante leitura/escrita no banco; a execução de comando no SO depende de funções e privilégios habilitados no PostgreSQL de backend, não é automática a partir do payload básico.
How it’s exploited
O vetor é uma requisição HTTP simples contra a interface de administração do FortiClientEMS, sem necessidade de credenciais, sessão ou interação do usuário. Basta acesso de rede ao serviço (tipicamente a porta de gerenciamento do EMS) e capacidade de definir o header Site com payload SQL. A complexidade de exploração é baixa: existe PoC pública funcional (0xBlackash/CVE-2026-21643) e template Nuclei, o que reduz drasticamente a barreira para exploração automatizada em varreduras massivas.
O Fortinet declara no advisory que a falha 'foi observada sendo explorada in the wild', e a CISA incluiu a CVE no KEV com prazo de remediação de apenas três dias entre inclusão (2026-04-13) e vencimento (2026-04-16) — prazo curtíssimo que normalmente reflete exploração ativa e generalizada, não incidente isolado.
O resultado prático varia por alvo: no mínimo, extração de dados do banco (credenciais, configurações, inventário de endpoints geridos pelo EMS); no cenário mais grave, encadeamento com funções do PostgreSQL para execução de comando no sistema operacional do servidor EMS, que tipicamente tem papel central na gestão de endpoints FortiClient — comprometer o EMS pode se traduzir em controle sobre a frota de clientes gerenciados.
Versions
How to protect
A correção do fornecedor é atualizar para FortiClientEMS 7.4.5 ou versão superior. A versão 7.4.4 é a única citada como afetada dentro do branch 7.4; os branches 7.2 e 8.0 não são afetados segundo o advisory FG-IR-25-1142 (a linha 'Not Applicable' indica que não há necessidade de ação nesses branches).
O advisory do Fortinet não lista workaround ou flag de mitigação alternativa — a única solução documentada é a atualização de versão. Como controle compensatório na ausência de patch imediato, restringir o acesso de rede à interface administrativa do EMS (não expor a porta de gerenciamento à internet, segmentar para redes de administração confiáveis) reduz a superfície de ataque, mas não elimina o risco caso já haja acesso interno ou lateral à rede de gestão. A CISA recomenda, se a mitigação do fornecedor não puder ser aplicada, considerar a descontinuação do uso do produto.
Não há indicação nas fontes de que um WAF genérico ou assinatura de IPS tenha sido validado como mitigação eficaz contra esta injeção específica — dado que o vetor é um header HTTP arbitrário, regras de bloqueio precisariam ser ajustadas para o padrão observado no header Site, o que é paliativo e não substitui o patch.
How to detect
Nos logs de acesso da interface administrativa do EMS, procurar requisições para /api/v1/init_consts contendo no cabeçalho 'Site' caracteres típicos de SQL injection (aspas simples, ponto-e-vírgula, palavras-chave como SELECT, UNION, pg_sleep, version(), current_database()). Respostas HTTP contendo mensagens de erro de PostgreSQL ou dados que não deveriam ser retornados nesse endpoint também são indício de tentativa bem-sucedida.
Não há, nas fontes consultadas, indicadores de comprometimento oficiais publicados pelo Fortinet (hashes, IPs, assinaturas). A detecção depende de inspeção de logs HTTP e, quando disponível, de logs de consultas do banco de dados PostgreSQL de backend para identificar queries anômalas associadas ao search_path.