CVE-2025-54123
Panoramica
Esecuzione remota di codice autenticata nell'endpoint API middleware di HoverFly a causa di una convalida dell'input insufficiente e di un'esecuzione di comandi non sicura.
Flusso di attacco
-
Autenticazione
- L'attaccante si autentica su HoverFly utilizzando credenziali valide o un token di sessione
- Ottiene un token Bearer tramite l'endpoint
/api/token-auth
-
Creazione del payload malevolo
- L'attaccante costruisce un payload JSON con:
binary: /bin/bash (controllato dall'utente)
script: comando shell arbitrario (ad es., whoami, reverse shell)
-
Consegna dell'exploit
- Invia una richiesta PUT a
/api/v2/hoverfly/middleware con payload malevolo
- Include il token Bearer nell'header Authorization
-
Elaborazione vulnerabile
- HoverFly riceve la richiesta ed estrae i parametri
binary e script
- Nessuna convalida dell'input viene eseguita sul parametro binary
- Crea un file script temporaneo con il contenuto fornito dall'utente
- Esegue immediatamente:
exec.Command(binary, scriptFile) durante la validazione del middleware
-
Esecuzione del codice
- Il comando viene eseguito con i privilegi del processo HoverFly
- L'output viene restituito nella risposta di errore (codice di stato 422)
- L'attaccante può eseguire comandi arbitrari o stabilire una reverse shell
Cause principali
- Righe 94-96 (middleware.go): il parametro binary viene accettato senza convalida
- Righe 14-19 (local_middleware.go): il binary controllato dall'utente viene passato direttamente a
exec.Command()
- Riga 173 (hoverfly_service.go): il middleware viene eseguito immediatamente durante i test
Dettagli disponibili qui : https://github.com/SpectoLabs/hoverfly/security/advisories/GHSA-r4h8-hfp2-ggmf