
CVE-2026-37748 的概念验证漏洞利用程序,该漏洞是 Visitor Management System 1.0 中的无限制文件上传漏洞,可通过上传 PHP 网页后门实现远程代码执行。
| 字段 | 信息 |
|---|---|
| CVE ID | CVE-2026-37748 |
| 类型 | 无限制文件上传 → 远程代码执行 |
| 严重性 | 高危(CVSSv3: 7.2) |
| 厂商 | sanjay1313 |
| 产品 | 访客管理系统 |
| 版本 | 1.0 |
| 发现者 | Varad AP Mene |
| 日期 | 2026-04-16 |
| CWE | CWE-434 |
sanjay1313 开发的访客管理系统 1.0 存在一个严重的无限制文件上传漏洞。vms/php/admin_user_insert.php 和 vms/php/update_1.php 中的 move_uploaded_file() 函数在调用时未进行任何 MIME 类型、文件扩展名或内容验证。已认证的管理员可以通过图片上传字段上传 PHP webshell,并通过 URL 直接访问上传的文件,从而在服务器上实现远程代码执行。
CVE ID: CVE-2026-37748 CWE: CWE-434 — 危险类型文件的无限制上传 CVSSv3: 7.2 高危(AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H)
访客管理系统 1.0 是 sanjay1313 在 GitHub 上发布的一个 PHP/MySQL Web 应用程序,用于管理组织中的访客记录。
厂商 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);
未对文件扩展名、MIME 类型或内容进行任何验证。
步骤 1 — 创建 webshell 文件 shell.php:
步骤 2 — 登录管理面板: http://target/vms/ 用户名:admin 密码:admin
步骤 3 — 将 shell.php 作为个人资料图片上传: 导航至 管理员用户 → 添加新管理员 将 shell.php 作为个人资料照片上传
步骤 4 — 执行命令: http://target/vms/images/shell.php?cmd=id http://target/vms/images/shell.php?cmd=whoami
// 1. 验证文件扩展名
$allowed = ['jpg', 'jpeg', 'png', 'gif'];
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
die("Invalid file type");
}
// 2. 验证 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. 在服务器上重命名文件
$new_name = uniqid() . '.' . $ext;
move_uploaded_file($_FILES['image']['tmp_name'], "../images/" . $new_name);
Varad Arachana Prashant Mene
| 日期 | 事件 |
|---|
| 2026-03-15 | 发现漏洞 |
| 2026-03-15 | 报告给 MITRE |
| 2026-04-02 | 分配 CVE-2026-37748 |
| 2026-04-16 | 公开披露 |
| 2026-04-16 | 通知 MITRE 已发布 |
| 2026-04-17 | 通过 GitHub Issues 通知厂商 |