Une vulnérabilité critique expose Fortinet FortiWeb à une prise de contrôle totale (CVE-2025-25257)

WatchTowr Labs a révélé la vulnérabilité CVE-2025-25257, une injection SQL critique pour FortiWeb permettant l'exécution de code à distance sans authentification. Appliquez immédiatement un correctif à vos appareils FortiWeb 7.0, 7.2, 7.4 et 7.6 pour éviter toute compromission complète du système. Effectuez la mise à jour dès maintenant !
Les chercheurs en cybersécurité ont découvert une faiblesse majeure, CVE-2025-25257 , dans un élément clé du logiciel de sécurité de Fortinet : le FortiWeb Fabric Connector , essentiel pour relier le pare-feu d'application Web de Fortinet (FortiWeb) à d'autres outils de sécurité, permettant des protections dynamiques.
La vulnérabilité a été initialement signalée à Fortinet par Kentaro Kawane de GMO Cybersecurity by Ierae. La démonstration ultérieure de l'escalade de la vulnérabilité jusqu'au contrôle total du système a été réalisée et publiée par watchTowr Labs, et les résultats ont été partagés en exclusivité avec Hackread.com.
Il s'agit d'une faille de type « injection SQL non authentifiée dans l'interface graphique », ce qui signifie que les attaquants peuvent exploiter une faiblesse dans l'interface d'administration du système sans avoir besoin d'un nom d'utilisateur ou d'un mot de passe, trompant le système FortiWeb pour qu'il exécute ses propres commandes nuisibles en envoyant des requêtes spécialement conçues sur Internet.
WatchTowr Labs a découvert ce problème caché en comparant la version 7.6.4 de FortiWeb avec une version plus ancienne, la 7.6.3. Ils ont identifié la faiblesse de la fonction get_fabric_user_by_token du programme /bin/httpsd
. Cette fonction, destinée aux connexions depuis d'autres appareils Fortinet comme les pare-feu FortiGate, ne parvenait pas à vérifier correctement les informations entrantes, permettant l'injection de commandes malveillantes via l'en-tête Authorisation: Bearer dans les requêtes adressées à /api/fabric/device/status
.
Les premières tentatives se sont avérées complexes en raison de limitations telles que l'interdiction des espaces dans les commandes. Cependant, les chercheurs ont intelligemment contourné ce problème grâce à la syntaxe de commentaire de MySQL (/**/)
. L'injection SQL a ainsi réussi, et ils ont même pu contourner complètement la vérification de connexion grâce à une simple commande 'or'1'='1
», qui renvoyait un message « 200 OK » confirmant le succès.
Les chercheurs ont réussi à transformer cette injection SQL initiale en exécution de code à distance (RCE). Ils ont utilisé l'instruction INTO OUTFILE de MySQL pour écrire les fichiers directement dans le répertoire système. Une découverte cruciale a été que le processus de base de données s'exécutait avec les privilèges root, ce qui lui permettait de placer des fichiers malveillants presque n'importe où.
Bien que l'exécution directe soit impossible, ils ont exploité un script Python existant dans le dossier /cgi-bin
, qui s'exécutait automatiquement avec des privilèges élevés. En écrivant un fichier Python spécial (.pth) dans un répertoire Python spécifique, ils ont pu forcer le système à exécuter leur propre code Python, démontrant ainsi une compromission complète du système.
En cas d'exploitation, un attaquant pourrait prendre le contrôle total de votre appareil FortiWeb et potentiellement d'autres systèmes connectés. Cela risquerait de provoquer le vol de données sensibles, l'interruption de service ou l'utilisation de vos systèmes pour de nouvelles attaques, entraînant des dommages financiers, réputationnels et juridiques importants.
Pour rester protégé, mettez immédiatement à jour votre système FortiWeb vers la version corrigée . Si une mise à jour immédiate n'est pas possible, Fortinet suggère de désactiver temporairement l'interface d'administration HTTP/HTTPS pour contourner ce problème.
Voici les détails des versions de FortiWeb impactées :
- 7.6.0 à 7.6.3 (mise à niveau vers 7.6.4 ou plus récent)
- 7.4.0 à 7.4.7 (mise à niveau vers 7.4.8 ou plus récent)
- 7.2.0 à 7.2.10 (mise à niveau vers 7.2.11 ou plus récent)
- 7.0.0 à 7.0.10 (mise à niveau vers 7.0.11 ou plus récent)
HackRead