← back
CVE-2021-44168lowunder attackCWE-494

CVE-2021-44168

58Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 3.3epss 0.9%
from disclosure to weapon400 days
Published on NVDJan 4
1st PoC+400d
CISA KEVDec 10
exploitation probability
0.9%top 44% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 public exploit(s)
Action required by CISAfederal deadline: 2021-12-24

Apply updates per vendor instructions.

Summary

Falha no comando "execute restore src-vis" do FortiOS que baixa e instala pacotes de atualização sem verificar sua integridade (CWE-494), permitindo que um atacante já autenticado localmente no dispositivo carregue arquivos arbitrários. O CVSS baixo (3.3) reflete que exige acesso autenticado prévio, mas Fortinet confirmou pelo menos um caso real de abuso que resultou em implante de rootkit/backdoor persistente em FortiGate — por isso está no catálogo KEV da CISA.

Technical detail

A vulnerabilidade é classificada como CWE-494 (Download of Code Without Integrity Check). O comando CLI "execute restore src-vis" existe para restaurar dados de visibilidade de assinaturas/tráfego a partir de um pacote de atualização. O processo que trata esse comando aceita o pacote fornecido e o instala sem validar assinatura criptográfica ou hash de integridade contra o que o Fortinet espera.

Como o atacante controla o conteúdo do "pacote de update" passado ao comando, ele pode empacotar arquivos arbitrários — binários, módulos de kernel, bibliotecas compartilhadas — e fazer o FortiOS gravá-los no filesystem do dispositivo (em áreas como /data2 e /bin, conforme observado nos casos reais). Isso não é execução de código pelo próprio bug diretamente: o vetor formal do CVSS marca apenas impacto de integridade (I:L), mas a gravação de arquivos com controle total de conteúdo e caminho abre caminho para persistência e execução subsequente.

O vetor CVSS (AV:L/PR:L) deixa claro que a superfície de ataque é local: é necessário shell/CLI autenticado no equipamento, com privilégio (PR:L), não é uma exploração via rede não autenticada. Isso reduz drasticamente o universo de exploração direta, mas eleva o risco em cenários onde credenciais administrativas já foram comprometidas por outro vetor (ex.: credenciais vazadas, phishing de admin, ou exploração encadeada de outra falha de acesso).

How it’s exploited

Pré-requisito real: acesso autenticado à CLI do FortiGate com privilégio suficiente para executar "execute restore src-vis", e a capacidade de fornecer um pacote de update malicioso ao dispositivo (via TFTP/console/USB, conforme o mecanismo normal desse comando de restore). Não há componente remoto não autenticado nesta CVE — o atacante precisa já estar dentro do perímetro administrativo do equipamento.

No caso documentado pelo Fortinet, o abuso resultou na instalação de um conjunto de arquivos consistente com um rootkit/backdoor: binários renomeados para parecer com ferramentas legítimas (smartctl, lldptd), módulos de kernel (.o) carregados via insmod, biblioteca com hijack de LD_PRELOAD (libips.so, ld.so.preload) e processos de exfiltração/beaconing (ash -c executando scripts redirecionados para arquivos). Após a instalação, foi observado tráfego de C&C em HTTP plaintext na porta 7443 para dois IPs específicos, indicando estabelecimento de canal de controle remoto persistente.

A CISA classifica a exploração como confirmada (presente no catálogo KEV desde 2021-12-10, com prazo de correção 2021-12-24), mas o Fortinet descreve o caso como "uma instância" conhecida de abuso — não uma campanha massiva. O EPSS baixo (0.87%) é compatível com isso: a barreira de pré-autenticação limita exploração em escala, mas o dano por incidente é alto (persistência total no dispositivo de borda de rede).

Versions

Affected
FortiOS 6.0.13 e anteriores; FortiOS 6.2.9 e anteriores; FortiOS 6.4.7 e anteriores; FortiOS 7.0.2 e anteriores.
Fixed in
FortiOS 6.0.14 ou superior; FortiOS 6.2.10 ou superior; FortiOS 6.4.8 ou superior; FortiOS 7.0.3 ou superior.

How to protect

Atualizar para FortiOS 6.0.14 ou superior, 6.2.10 ou superior, 6.4.8 ou superior, ou 7.0.3 ou superior, conforme o ramo em uso — o Fortinet removeu/corrigiu o comando "restore src-vis" nessas versões. Não há flag de configuração publicada como mitigação paliativa; o fornecedor não descreve workaround além da atualização.

Como controle compensatório real, restringir e monitorar rigorosamente quem tem acesso administrativo autenticado ao CLI do FortiGate (contas de management, VPN de gestão, MFA em contas admin) reduz a chance de exploração, já que o pré-requisito é justamente esse acesso. Isso não corrige a falha, apenas reduz a superfície de quem pode chegar a executar o comando vulnerável.

Se o dispositivo não puder ser atualizado imediatamente, a ação prioritária é verificar indicadores de comprometimento (ver seção de detecção) — a mera presença no KEV com prazo vencido (24/12/2021) indica que o Fortinet e a CISA tratam isso como exigindo remediação, não apenas mitigação de configuração.

How to detect

O próprio advisory do Fortinet lista indicadores de comprometimento específicos do caso conhecido: arquivos inesperados no filesystem do FortiGate (visíveis via "fnsysctl ls"), como /data2/virc.dat, /data2/vire, /data2/vire.tar.gz, /data2/vird, /data2/gettd, /data2/smartctll, /data2/ftar, /data2/reportnd, /data2/llpdtd, /data2/flcfgt, arquivos dentro de /data2/viree/vire/ (inject, insmod, hack.o, libips.so, ld.so.preload) e /etc/ld.so.preload; processos inesperados visíveis via "fnsysctl ps" (por exemplo scripts ash executando smartctl ou flcfgt com redirecionamento para arquivos numerados); e tráfego de saída em HTTP plaintext na porta 7443 destinado aos IPs 192.46.213.244 e 172.105.181.67.

Não há assinatura de exploração genérica publicada além desses IOCs específicos do caso relatado — se o pacote de update malicioso usado por outro atacante for diferente, esses artefatos não vão bater, e não existe log nativo do FortiOS documentado que sinalize tentativas de abuso do comando "restore src-vis" com pacote adulterado.

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 download of code without integrity check vulnerability in the "execute restore src-vis" command of FortiOS before 7.0.3 may allow a local authenticated attacker to download arbitrary files on the device via specially crafted update packages.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N/E:P/RL:U/RC:C
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.