menevarad007/CVE-2026-37748
GitHub: menevarad007/CVE-2026-37748
一个访客管理系统,因未校验上传文件类型导致任意文件上传并可触发 RCE,演示了完整漏洞复现与修复路径。
Stars: 0 | Forks: 0
# CVE-2026-37748
Visitor Management System 1.0 - 无限制文件上传 → RCE (CVE-2026-37748)
# CVE-2026-37748 — Visitor Management System 1.0 - RCE
## 详细信息
| 字段 | 信息 |
|---|---|
| **CVE ID** | CVE-2026-37748 |
| **类型** | 无限制文件上传 → RCE |
| **严重性** | 危急 |
| **厂商** | sanjay1313 |
| **产品** | Visitor Management System 1.0 |
| **发现者** | Varad AP Mene |
## 易受攻击的文件
- 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. 登录 → http://target/vms/ (admin:admin)
2. 进入「管理用户」→「添加新管理员」
3. 上传 shell.php 作为个人头像
4. 访问 → http://target/vms/images/shell.php?cmd=id
## 载荷
```
```
## 影响
以 Web 服务器用户身份完全远程执行代码。
## 修复建议
```
// 1. Validate file extension
$allowed = ['jpg', 'jpeg', 'png', 'gif'];
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
die("Invalid file type");
}
// 2. Validate MIME type
$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. Rename file on server side
$new_name = uniqid() . '.' . $ext;
move_uploaded_file($_FILES['image']['tmp_name'], "../images/" . $new_name);
```
## 参考链接
https://github.com/sanjay1313/Visitor-Management-System
## 发现者
Varad Archana Prashant Mene — menevarad007@gmail.com
标签:CISA项目, CMS漏洞, CVE-2026-37748, MIME类型绕过, OpenVAS, PHP, PHP Web, RCE, Web渗透, 修复建议, 命令执行, 安全漏洞, 文件上传漏洞, 文件扩展名绕过, 服务端上传路径, 未经验证的文件上传, 漏洞复现, 白名单过滤, 编程工具, 访客管理系统, 远程代码执行, 黑名单绕过