lukasz-rybak/CVE-2025-65094
GitHub: lukasz-rybak/CVE-2025-65094
识别并复现 WBCE CMS 中的 IDOR 权限提升漏洞,验证服务器端授权缺失问题。
Stars: 0 | Forks: 0
# CVE-2025-65094:WBCE CMS 在组 ID 操纵(IDOR)方面存在权限提升漏洞
## 概述
| 字段 | 说明 |
|---|---|
| **CVE ID** | [CVE-2025-65094](https://nvd.nist.gov/vuln/detail/CVE-2025-65094) |
| **严重性** | 高 |
| **公告** | [查看公告](https://github.com/WBCE/WBCE_CMS/security/advisories/GHSA-hmmw-4ccm-fx44) |
| **发现者** | [Lukasz Rybak](https://github.com/lukasz-rybak) |
## 影响产品
- **WBCE/WBCE_CMS**
## 详情
### 摘要
WBCE CMS 中权限较低的用户可以通过操纵 `/admin/users/save.php` 请求中的 `groups[]` 参数,将权限提升至 **Administrators** 组。
UI 限制用户只能分配其所属的现有组,但 **缺少服务器端验证**,允许攻击者覆盖其组成员身份并获得完整的管理访问权限。
这将导致 **CMS 完全被攻破**。
## 上游修复确认
项目维护者已在以下提交中修复了该问题:
- **提交:** `9604617`
- **标题:** *“changes in user management”*
- **链接:** https://github.com/WBCE/WBCE_CMS/commit/96046178f4c80cf16f7c224054dec7fdadddda7e
**相关提交信息:**
此提交直接解决了组分配过程中的不当访问控制问题。
### 详情
WBCE CMS 使用 **组权限** 来限制对管理功能的访问。
创建了一个权限受限的组(`Users`),其权限如下:
| 权限类别 | 设置 |
|--------------------|--------------------|
| 页面 | 查看 |
| 媒体 | 查看 |
| 插件 | 查看 |
| 设置 | 查看 |
| **访问 → 用户** | **查看 + 修改** |
| **访问 → 组** | **查看** |
| 管理工具 | *(无)* |
此设置确保权限较低的用户:
- 无法创建或编辑其他用户(只能修改自己的资料),
- 无法管理组,
- 无法安装或修改模块,
- 无法访问管理工具,
- 无法执行管理操作。
他们唯一的提升权限为:
### 漏洞行为
当通过以下路径修改个人资料时:
**访问 → 用户 → 修改用户**
后端未验证提交的 `groups[]` 值是否对应允许的 UI 选项。
攻击者可以拦截并修改请求:
`groups[]=2` → 攻击者修改为 → `groups[]=1`
这将立即使用户被分配到 **Administrators** 组。
### 受影响的代码路径
(根据提交 `9604617` 确认)
以下文件参与组分配,但此前缺乏适当的授权逻辑:
- `wbce/admin/users/index.php`
- `wbce/admin/users/users.php`
- `wbce/admin/users/save.php`
修复引入了 **服务器端验证**,实现以下功能:
- 允许 **管理员** 分配任意组。
- 限制 **普通用户** 只能分配到其已所属的组。
这确认了在组分配过程中存在 **不当访问控制 / IDOR** 漏洞。
## 概念验证(PoC)
### 1. 创建受限组
配置一个名为 **Users** 的组,并设置:
- 用户 → 修改(启用)
- 其他所有权限禁用
### 2. 创建低权限用户
### 3. 以低权限用户身份登录
导航至:
**访问 → 用户 → 修改用户**
使用 Burp Suite 等代理工具拦截发出的请求。
### 4. 修改组分配参数
**原始请求参数:**
`groups%5B%5D=2`
**修改后的请求参数:**
`groups%5B%5D=1`
将参数修改为 `1` 会将用户分配到 **Administrators** 组。
### 5. 转发请求
### 6. 获得管理权限
重新认证后,用户将获得对管理工具和功能的完全访问权限。
## 影响
这是一个 **权限提升漏洞**,允许任何已认证的低权限用户:
1. 提升至 **Administrators** 组
2. 获得对 CMS 的完全控制
3. 安装任意模块
4. 访问所有管理工具
5. 可能通过恶意模块上传实现 **远程代码执行**
6. 修改或删除 CMS 管理的任何内容
## 参考
- https://github.com/WBCE/WBCE_CMS/security/advisories/GHSA-hmmw-4ccm-fx44
- https://github.com/WBCE/WBCE_CMS/commit/96046178f4c80cf16f7c224054dec7fdadddda7e
## 免责声明
本 CVE 遵循协调漏洞披露(CVD)流程进行负责任披露。此处提供的信息仅用于教育和防御目的。
此设置确保权限较低的用户:
- 无法创建或编辑其他用户(只能修改自己的资料),
- 无法管理组,
- 无法安装或修改模块,
- 无法访问管理工具,
- 无法执行管理操作。
他们唯一的提升权限为:
### 漏洞行为
当通过以下路径修改个人资料时:
**访问 → 用户 → 修改用户**
后端未验证提交的 `groups[]` 值是否对应允许的 UI 选项。
攻击者可以拦截并修改请求:
`groups[]=2` → 攻击者修改为 → `groups[]=1`
这将立即使用户被分配到 **Administrators** 组。
### 受影响的代码路径
(根据提交 `9604617` 确认)
以下文件参与组分配,但此前缺乏适当的授权逻辑:
- `wbce/admin/users/index.php`
- `wbce/admin/users/users.php`
- `wbce/admin/users/save.php`
修复引入了 **服务器端验证**,实现以下功能:
- 允许 **管理员** 分配任意组。
- 限制 **普通用户** 只能分配到其已所属的组。
这确认了在组分配过程中存在 **不当访问控制 / IDOR** 漏洞。
## 概念验证(PoC)
### 1. 创建受限组
配置一个名为 **Users** 的组,并设置:
- 用户 → 修改(启用)
- 其他所有权限禁用
### 2. 创建低权限用户
### 3. 以低权限用户身份登录
导航至:
**访问 → 用户 → 修改用户**
使用 Burp Suite 等代理工具拦截发出的请求。
### 4. 修改组分配参数
**原始请求参数:**
`groups%5B%5D=2`
**修改后的请求参数:**
`groups%5B%5D=1`
将参数修改为 `1` 会将用户分配到 **Administrators** 组。
### 5. 转发请求
### 6. 获得管理权限
重新认证后,用户将获得对管理工具和功能的完全访问权限。
## 影响
这是一个 **权限提升漏洞**,允许任何已认证的低权限用户:
1. 提升至 **Administrators** 组
2. 获得对 CMS 的完全控制
3. 安装任意模块
4. 访问所有管理工具
5. 可能通过恶意模块上传实现 **远程代码执行**
6. 修改或删除 CMS 管理的任何内容
## 参考
- https://github.com/WBCE/WBCE_CMS/security/advisories/GHSA-hmmw-4ccm-fx44
- https://github.com/WBCE/WBCE_CMS/commit/96046178f4c80cf16f7c224054dec7fdadddda7e
## 免责声明
本 CVE 遵循协调漏洞披露(CVD)流程进行负责任披露。此处提供的信息仅用于教育和防御目的。标签:CMS安全, CVE, GitHub安全公告, IDOR, JavaScript, Privilege Escalation, WBCE CMS, 修复提交, 分组权限, 协议分析, 多线程, 数字签名, 服务端验证缺失, 权限提升, 漏洞, 用户管理, 访问控制缺陷