CVE-2025-54123
Aperçu
Exécution de code à distance authentifiée dans le point de terminaison de l'API middleware de HoverFly en raison d'une validation des entrées insuffisante et d'une exécution de commandes non sécurisée.
Déroulement de l'attaque
-
Authentification
- L'attaquant s'authentifie auprès de HoverFly à l'aide d'identifiants valides ou d'un jeton de session
- Obtient un jeton Bearer via le point de terminaison
/api/token-auth
-
Création de la charge utile malveillante
- L'attaquant construit une charge utile JSON avec :
binary : /bin/bash (contrôlé par l'utilisateur)
script : commande shell arbitraire (par exemple, whoami, reverse shell)
-
Livraison de l'exploit
- Envoie une requête PUT à
/api/v2/hoverfly/middleware avec une charge utile malveillante
- Inclut le jeton Bearer dans l'en-tête Authorization
-
Traitement vulnérable
- HoverFly reçoit la requête et extrait les paramètres
binary et script
- Aucune validation des entrées n'est effectuée sur le paramètre binary
- Crée un fichier de script temporaire avec le contenu du script fourni par l'utilisateur
- Exécute immédiatement :
exec.Command(binary, scriptFile) lors de la validation du middleware
-
Exécution de code
- La commande s'exécute avec les privilèges du processus HoverFly
- La sortie est renvoyée dans la réponse d'erreur (code de statut 422)
- L'attaquant peut exécuter des commandes arbitraires ou établir un reverse shell
Causes profondes
- Lignes 94-96 (middleware.go) : paramètre binary accepté sans validation
- Lignes 14-19 (local_middleware.go) : binaire contrôlé par l'utilisateur passé directement à
exec.Command()
- Ligne 173 (hoverfly_service.go) : middleware exécuté immédiatement pendant les tests
Détails disponibles ici : https://github.com/SpectoLabs/hoverfly/security/advisories/GHSA-r4h8-hfp2-ggmf