Aller au contenu

CVE-2026-6595: Injection SQL dans School Management System

Une vulnérabilité critique d’injection SQL a été identifiée dans le système de gestion scolaire ProjectsAndPrograms, répertoriée sous l’identifiant CVE-2026-6595. Cette vulnérabilité permet à un attaquant distant non authentifié d’exécuter des commandes SQL arbitraires en manipulant le paramètre bus_id. L’analyse confirme que la faille provient d’une gestion inadéquate des entrées dans le fichier buslocation.php.

La vulnérabilité se situe dans le fichier student_panel/buslocation.php, à la ligne 54. L’application traite le paramètre GET bus_id sans aucune sanitisation ni paramétrage.

La structure du code vulnérable est la suivante : $sql = "SELECT * FROM bus_root WHERE bus_id='{$_GET['bus_id']}'";

En injectant de la syntaxe SQL dans le paramètre bus_id, un attaquant peut manipuler la structure de la requête. Un exemple de charge utile inclut ' union select 1,2,database(),4,5-- , qui force l’application à retourner le nom de la base de données dans la réponse.

Trois indicateurs forensiques principaux ont été identifiés pour cette tentative d’exploitation :

  1. Journaux d’accès : présence de requêtes GET vers /student_panel/buslocation.php contenant des caractères d’injection SQL, tels que union, select, ou des indicateurs de commentaire (--).
  2. Journaux de base de données : requêtes anormales provenant de l’utilisateur de la base de données de l’application contenant des instructions UNION SELECT ou des fonctions d’extraction de métadonnées.
  3. Journaux d’application : une augmentation des codes d’erreur serveur 500 ou des journaux d’erreurs de syntaxe de base de données, souvent associés à des tentatives d’échec de contournement de la logique de requête.
title: Potential SQL Injection in School Management System
status: experimental
description: Detects exploitation attempts of CVE-2026-6595 against buslocation.php
logsource:
category: web
detection:
selection:
uri_query|contains: 'bus_id='
uri_query|contains:
- 'union'
- 'select'
- 'database()'
- '--'
condition: selection
priority: high