Vulnérabilités multiples dans ITFlow
- Produit
- ITFlow
- Sévérité
- Medium
- Versions affectées
- ≤ v25.06
- Version corrigée
- v25.07
Introduction
ITFLow est une application open-source conçue pour les MSP, qui permet de gérer la documentation client, la comptabilité et un système de support fondé sur des tickets.
Vulnérabilités
Deux vulnérabilités de sécurité ont été identifiées dans l'application : un open redirect non authentifié et une injection SQL authentifiée. Ces deux failles peuvent être exploitées pour compromettre la sécurité des utilisateurs et exposer des informations sensibles.
Chronologie
| Date | Description |
|---|---|
| 04/08/2025 | Signalement des vulnérabilités via le projet GitHub |
| 04/08/2025 | Réponse de l'éditeur et lancement des correctifs |
| 05/09/2025 | Publication officielle du correctif de l'injection SQL |
| 08/11/2025 | Publication officielle du correctif de l'open redirect |
| 06/01/2026 | Réservation des identifiants CVE. |
Détails techniques
Open redirect non authentifié
L'application utilise le paramètre $_GET['last_visited'] pour rediriger les utilisateurs vers la page qu'ils consultaient avant l'expiration de leur session. Ce paramètre est encodé en Base64 et est censé contenir un chemin relatif à l'intérieur de l'application.
if (isset($_GET['last_visited'])) {
header("Location: ".$_SERVER["REQUEST_SCHEME"] . "://" . $config_base_url . base64_decode($_GET['last_visited']) );
}
Cependant, le paramètre last_visited est entièrement contrôlé par l'utilisateur et insuffisamment validé avant d'être utilisé dans la logique de redirection. Un attaquant peut ainsi forger un lien malveillant contenant une URL externe ou une séquence de path traversal encodée en Base64, ce qui amène l'application à rediriger les utilisateurs vers un site externe arbitraire.
Cette vulnérabilité peut être exploitée sans authentification et peut servir à des attaques de phishing, à la redirection des utilisateurs vers du contenu malveillant ou à des campagnes d'ingénierie sociale, la redirection semblant provenir d'un domaine de confiance.
Injection SQL authentifiée / CVE-2025-67081
Une injection SQL authentifiée a été identifiée dans une fonctionnalité d'administration liée à la gestion des rôles. Cette faille permet à un attaquant authentifié disposant d'un accès au panneau d'administration de manipuler des requêtes SQL et, potentiellement, de fuiter ou de modifier des informations de la base de données.
L'application tente d'assainir les entrées utilisateur à l'aide d'une fonction sanitizeInput :
$role_id = sanitizeInput($_POST['role_id']);
Toutefois, cette fonction n'est efficace que lorsque le paramètre SQL est traité comme une chaîne de caractères. Dans la requête SQL suivante, le paramètre role_id est censé être un entier et n'est donc pas entouré de guillemets
mysqli_query(
$mysqli,
"UPDATE user_roles
SET role_name = '$name',
role_description = '$description',
role_is_admin = $admin
WHERE role_id = $role_id");
Comme $role_id est injecté directement dans la requête sans guillemets, l'attaquant n'a pas besoin de sortir d'un contexte de chaîne de caractères. Cela permet de manipuler directement la logique de la requête SQL en injectant des expressions SQL supplémentaires, ce qui aboutit à une injection SQL réussie.
Cette vulnérabilité peut être exploitée pour lire des données sensibles, modifier des enregistrements de la base de données ou élever des privilèges, selon les permissions de la base et la logique de l'application.
Remédiation
L'injection SQL a été corrigée dans la version 25.07 et l'open redirect dans la version 25.11. Vous pouvez mettre à jour votre application vers une version supérieure pour vous protéger.
Ressources
Continuer la lecture
Parlez-nous de votre projet.
Discutons ensemble de vos besoins et attentes pour vous proposer un service sur mesure.

