Advisory3 min

Vulnérabilités multiples dans ITFlow

Jonathan Chambre

Par Jonathan Chambre

Publié le 14 janvier 2026

Read in English
Bulletin de sécurité
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

DateDescription
04/08/2025Signalement des vulnérabilités via le projet GitHub
04/08/2025Réponse de l'éditeur et lancement des correctifs
05/09/2025Publication officielle du correctif de l'injection SQL
08/11/2025Publication officielle du correctif de l'open redirect
06/01/2026Ré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.