> [!danger] CVSS 9.6 - Crítico
> Out-of-bounds write no SSL VPN do FortiOS permite RCE sem autenticação. Zero-day explorado pelo Qilin e Salt Typhoon.
> [!warning] CISA KEV - Exploração Ativa Confirmada
> Adicionada ao catálogo CISA KEV em 2024-02-09. Exploração ativa confirmada no momento da divulgação.
> [!success] Patch Disponível
> Atualizar FortiOS para 7.4.3+, 7.2.7+, 7.0.14+ ou 6.4.15+. Desabilitar SSL VPN como workaround.
# CVE-2024-21762 - Out-of-Bounds Write no FortiOS SSL VPN
> CVSS: 9.6 · EPSS: 97% · Vendor: Fortinet · Patch: Sim · CISA KEV: Sim
## Visão Geral
CVE-2024-21762 é uma vulnerabilidade crítica de **out-of-bounds write** no componente SSL VPN do [[fortios]] da [[_fortinet|Fortinet]], permitindo execução remota de código sem autenticação via requisições HTTP especialmente crafted. A falha afeta o serviço SSL-VPN exposto externamente, tornando todos os firewalls e gateways FortiGate com SSL VPN habilitado potencialmente vulneráveis sem qualquer interação do usuário.
A Fortinet confirmou exploração ativa em produção no momento da divulgação (fevereiro de 2024), classificando-a como zero-day ativo. O grupo de ransomware [[qilin|Qilin]] foi observado explorando esta CVE para ganho de acesso inicial em múltiplas organizações. O APT [[g1045-salt-typhoon|Salt Typhoon]], nexo China, também foi documentado utilizando a falha em operações de espionagem contra telecomúnicações e governo. O cluster [[brazen-bamboo|BrazenBamboo]] explorou variantes relacionadas para implantar o backdoor DEEPDATA em dispositivos FortiClient. Com mais de 150.000 instâncias FortiGate expostas à internet no momento da divulgação, o impacto potencial foi massivo.
**Mitigação:** Atualizar FortiOS para 7.4.3+, 7.2.7+, 7.0.14+, 6.4.15+, 6.2.17+ conforme a branch instalada. Como workaround temporário: desabilitar SSL VPN via CLI (`config vpn ssl settings` → `set status disable`). Não confundir com desabilitar apenas o portal web - o listener SSL VPN deve ser completamente desativado.
## Cadeia de Exploração
```mermaid
graph TB
ATK[Atacante / Qilin / Salt Typhoon] -->|Requisição HTTP crafted ao SSL VPN| FG[FortiGate SSL VPN]
FG -->|Out-of-bounds write no processo SSL-VPN| MEM[Corrupção de Memória]
MEM -->|RCE sem autenticação| RCE[Execução Remota de Código]
RCE -->|Implantação de backdoor DEEPDATA| BACK[Backdoor Persistente]
BACK -->|Acesso a rede interna| NET[Rede Corporativa]
BACK -->|Exfiltração de credenciais VPN| CRED[Credenciais Roubadas]
```
## Relevância LATAM/Brasil
> [!latam] Impacto Regional
> A **Fortinet** é líder absoluto em firewalls corporativos no Brasil e América Latina, com FortiGate sendo o appliance de segurança mais implantado em empresas de médio e grande porte. O SSL VPN do FortiOS é amplamente utilizado como solução de acesso remoto corporativo - especialmente expandido após a pandemia de COVID-19. Organizações nos setores **financeiro**, **governo** e **telecomúnicações** brasileiros dependem fortemente desta solução para acesso de funcionários e parceiros remotos.
>
> O envolvimento do grupo **Qilin** (ransomware) indica risco direto para empresas brasileiras, enquanto o **Salt Typhoon** (espionagem estatal chinesa) representa ameaça estratégica às telecomúnicações e governo. Com mais de 150.000 instâncias FortiGate expostas na internet globalmente no momento da divulgação, e considerando a base instalada massiva da Fortinet no Brasil, estima-se que milhares de dispositivos brasileiros estiveram vulneráveis. O CERT.br emitiu alerta específico para esta CVE em fevereiro de 2024, recomendando atualização imediata.
>
> Organizações que não aplicaram o patch e utilizaram o SSL VPN durante o período de vulnerabilidade devem realizar análise forense focada em artefatos do backdoor DEEPDATA e modificações em arquivos de sistema do FortiOS.
**Setores em risco:** [[telecommunications|telecomúnicações]] · [[financial|financeiro]] · [[government|governo]] · [[critical-infrastructure|infraestrutura crítica]]
## Referências
- [NVD - CVE-2024-21762](https://nvd.nist.gov/vuln/detail/CVE-2024-21762)
- [Fortinet PSIRT Advisory FG-IR-24-015](https://fortiguard.fortinet.com/psirt/FG-IR-24-015)
- [CISA KEV Entry](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- [Shadowserver - Scanning Stats FortiGate](https://www.shadowserver.org/)
## Notas Relacionadas
- [[cve-2024-21887|CVE-2024-21887]] - injeção de comandos Ivanti, vulnerabilidade de perfil similar (VPN gateway)
- [[cve-2022-42475|CVE-2022-42475]] - FortiOS SSL VPN anterior, mesmo componente
- [[qilin|Qilin]] - grupo ransomware explorando para acesso inicial
- [[g1045-salt-typhoon|Salt Typhoon]] - APT chinês, espionagem em telecomúnicações
- [[brazen-bamboo|BrazenBamboo]] - cluster explorando FortiClient para implantar DEEPDATA
- [[Fortinet SSL VPN Exploitation 2024]] - campanha de exploração em escala
- [[_fortinet|Fortinet]] - vendor afetado
- [[t1133-external-remote-services|T1133 - External Remote Services]] - exploração de VPN gateway
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] - acesso inicial sem autenticação
- [[telecommunications|telecomúnicações]] - setor alvo prioritário
---
## Detecção e Resposta
> [!warning] Aviso sobre as regras abaixo
> As regras e consultas a seguir são **exemplos e pontos de partida**. Devem ser revisadas,
> testadas e adaptadas ao seu ambiente específico antes de serem implantadas em produção.
> Falsos positivos e negativos são esperados - tuning contínuo é necessário. Valide sempre
> contra sua telemetria antes de ativar alertas.
### Splunk SPL
```spl
index=fortigate sourcetype="fortigate:traffic" OR sourcetype="fortigate:utm"
(url="/remote/login" OR url="/remote/*" OR url="/api/v2/cmdb/vpn.ssl/*")
http_method=POST
(http_content_length>99999999 OR http_header="*Transfer-Encoding: chunked*")
| stats count by src_ip, url, http_method, http_content_length, _time
| where count > 3
| eval alerta="Possível exploração CVE-2024-21762 - requisições malformadas ao SSL VPN"
| table _time, src_ip, url, http_method, http_content_length, count, alerta
```
Complementar - falhas e crashes do processo sslvpnd:
```spl
index=fortigate sourcetype="fortigate:system"
(msg="*sslvpnd*" AND (msg="*crash*" OR msg="*fatal*" OR msg="*segfault*" OR msg="*out of bound*"))
| table _time, host, msg
| eval alerta="sslvpnd crash - possível indicador de exploração CVE-2024-21762"
```
Complementar - detecção de modificação de arquivo de backdoor conhecida (pós-exploit):
```spl
index=fortigate sourcetype="fortigate:system"
(msg="*libcli.so*" OR msg="*/data/lib/*")
| table _time, host, msg
```
Fonte de dados requerida: FortiGate Traffic Logs, System Logs, UTM Logs exportados via Syslog/CEF para Splunk
### Microsoft Sentinel (KQL)
```kql
// Detecta requisições POST malformadas ao endpoint SSL VPN do FortiOS - CVE-2024-21762
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DeviceVendor == "Fortinet"
| where RequestURL has_any ("/remote/login", "/remote/", "/api/v2/cmdb/vpn.ssl/")
| where RequestMethod == "POST"
| where AdditionalExtensions contains "chunked"
or toint(extract(@"Content-Length: (\d+)", 1, AdditionalExtensions)) > 99999999
| summarize count() by SourceIP, RequestURL, bin(TimeGenerated, 1h)
| where count_ > 3
| order by count_ desc
```
```kql
// Caça atividade pós-exploit: downloads de payloads e reconhecimento interno
CommonSecurityLog
| where TimeGenerated > ago(30d)
| where DeviceVendor == "Fortinet"
| where Message has_any (
"libcli.so",
"/data/lib/",
"sslvpnd crash",
"segfault",
"out of bound"
)
| project TimeGenerated, DeviceName, SourceIP, DestinationIP, Message, LogSeverity
| order by TimeGenerated desc
```
Tabela(s): `CommonSecurityLog`, `Syslog`
### Sigma Rule
```yaml
title: Detect CVE-2024-21762 FortiOS SSL VPN Out-of-Bounds Write Exploitation
id: 7e2f4a9c-3b67-4d81-c234-fa5678901234
status: experimental
description: >
Detecta tentativas de exploração de CVE-2024-21762 - out-of-bounds write no sslvpnd do FortiOS.
O exploit envia requisições HTTP POST malformadas (chunked transfer encoding com tamanhos
manipulados) para o endpoint /remote/login do SSL VPN. A exploração bem-sucedida resulta
em RCE sem autenticação no gateway FortiGate.
references:
- [[t1190-exploit-public-facing-application]]
- https://fortiguard.fortinet.com/psirt/FG-IR-24-015
- https://nvd.nist.gov/vuln/detail/CVE-2024-21762
logsource:
category: webserver
product: fortigate
detection:
selection_endpoint:
cs-uri-stem|contains:
- '/remote/login'
- '/remote/'
- '/api/v2/cmdb/vpn.ssl/'
cs-method: 'POST'
selection_malformed:
cs-version|contains: 'chunked'
condition: selection_endpoint and selection_malformed
falsepositives:
- Scanners de vulnerabilidade legítimos verificando o endpoint SSL VPN
- Clientes VPN com comportamento incomum de negociação HTTP
level: high
tags:
- attack.initial_access
- attack.t1190
- attack.t1133
- cve.2024-21762
```
### EDR
#### CrowdStrike Falcon
Custom IOA Rule (Behavioral):
Regras específicas para FortiOS não estão disponíveis públicamente no CrowdStrike Falcon, pois o FortiOS não executa agente EDR tradicional. A detecção deve ser feita via análise de logs de syslog do FortiGate integrados ao Falcon LogScale (Humio). No LogScale, criar alerta para requisições POST malformadas ao endpoint `/remote/login` com tamanho de conteúdo anômalo ou Transfer-Encoding: chunked.
Threat Graph Query (Falcon Data Replicator):
Regras específicas não disponíveis públicamente para FortiOS no contexto de Falcon Data Replicator. Consulte o vendor advisory FG-IR-24-015 e monitore IOCs associados ao [[qilin|Qilin]], [[g1045-salt-typhoon|Salt Typhoon]] e [[brazen-bamboo|BrazenBamboo]] para hashes e IPs de C2.
#### SentinelOne
Deep Visibility Query:
Regras específicas não disponíveis públicamente para FortiOS no SentinelOne (FortiOS não executa agente SentinelOne). Para ambientes com integração de logs de rede no SentinelOne Singularity XDR:
```
EventType = "NetworkConnection" AND
DstPort = 443 AND
DstIPv4 NOT In ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16") AND
SrcProcName ContainsCIS "sslvpnd"
```
#### Microsoft Defender for Endpoint (MDE)
Advanced Hunting (KQL):
```kql
// Detecta conexões de rede para infraestrutura associada a exploração de Fortinet SSL VPN
DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemotePort == 443
| where InitiatingProcessFileName in~ ("sslvpnd", "httpsd", "forticron")
| where not(ipv4_is_private(RemoteIP))
| project Timestamp, DeviceName, LocalIP, RemoteIP, RemotePort,
InitiatingProcessFileName, InitiatingProcessCommandLine
| order by Timestamp desc
```
### Firewall / Network
#### Palo Alto Networks (PAN-OS)
Para organizações usando FortiGate como SSL VPN e PAN-OS como firewall de perímetro: criar regra de Security Policy inspecionando tráfego HTTPS de entrada ao FortiGate SSL VPN. Habilitar SSL Decryption para inspecionar o conteúdo das requisições. Configurar Application-Default para restringir conexões ao portal SSL VPN apenas a países e IPs legítimos.
App-ID / Threat ID relevante: Habilitar Vulnerability Protection profile com assinaturas para exploits de VPN gateways; verificar Threat Prevention database para cobertura de CVE-2024-21762.
#### Fortinet FortiGate
**Mitigação imediata**: Desabilitar o SSL VPN completamente se não for possível aplicar o patch:
```
config vpn ssl settings
set status disable
end
```
**Monitoramento via IPS**: Habilitar IPS com perfil "default" ou "protect" nas políticas que permitem tráfego ao SSL VPN portal. Verificar FortiGuard Labs para assinaturas específicas.
IPS Signature: `FortiOS.SSL.VPN.Out-of-Bound.Memory.Write` - verificar disponibilidade no FortiGuard Labs sob o advisory FG-IR-24-015. A Fortinet tipicamente pública assinaturas IPS para vulnerabilidades críticas próprias dentro de 24-48h do advisory. Verificar também a assinatura `HTTP.Chunked.Transfer.Encoding.Exploit` para cobertura complementar.