update CVE-2026-25887

This commit is contained in:
Threekiii committed 2026-03-18 17:29:19 +08:00
1 parent d136f18149
commit d4c7e78fb4
4 files changed
+56

No files matched your search

@@ -0,0 +1,56 @@
# Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887
## 漏洞描述
[Chartbrew](https://github.com/chartbrew/chartbrew) 是一个开源的报表平台,可以连接数据库和 API 来构建和分享实时数据仪表盘。
在 Chartbrew 4.8.0 版本中,`ConnectionController.js` 的 `runMongo` 函数将用户提交的 MongoDB 数据集查询直接传入 JavaScript 的 `Function()` 构造器,未做任何校验或过滤。拥有创建数据集权限的已认证用户可以通过 MongoDB 查询输入注入任意 JavaScript 代码,在 Node.js 进程上下文中实现远程代码执行。该漏洞在 4.8.1 版本中通过引入基于 AST 的查询校验修复。
参考链接:
- https://github.com/chartbrew/chartbrew/security/advisories/GHSA-x4r6-prmw-7wvw
- https://nvd.nist.gov/vuln/detail/CVE-2026-25887
## 漏洞影响
```
Chartbrew < 4.8.1
```
## 环境搭建
Vulhub 执行如下命令启动 Chartbrew 4.8.0 服务:
```
docker compose up -d
```
服务启动后,访问 `http://your-ip:4018` 即可看到 Chartbrew 的 Web 界面,API 服务地址为 `http://your-ip:4019`。
如果你在远程服务器或虚拟机上运行该环境,需要通过 `CB_HOST` 环境变量指定服务器 IP 地址,使前端能正确访问 API:
```
CB_HOST=your-ip docker compose up -d
```
![](images/Chartbrew%20MongoDB%20数据集查询远程代码执行漏洞%20CVE-2026-25887/image-20260318105840677.png)
## 漏洞复现
首先,打开 Chartbrew 的 Web 界面并注册一个新账号,第一个注册的用户将成为管理员。登录后,按照引导创建一个新项目。在 `Step 1:Select your datasource type` 中选择 MongoDB,在 `Step 2: Connect to your data source` 中,输入连接字符串 `mongodb://mongodb:27017/vulhub`,连接到本环境中的 MongoDB 服务。
![](images/Chartbrew%20MongoDB%20数据集查询远程代码执行漏洞%20CVE-2026-25887/image-20260318110500927.png)
保存连接后,进入 "Datasets" 页面,使用该 MongoDB 连接创建一个新的数据集。在查询编辑器中,输入以下恶意查询,利用 `child_process.execSync` 执行任意系统命令:
```
version + (function(){ try { const r = global.process.mainModule.require('child_process'); return r.execSync('id').toString(); } catch(e) { return e.toString(); } })()
```
点击 "Run query" 后,右侧结果面板将显示 `id` 命令的输出,证明可以在服务器上以 root 身份执行任意命令。
![](images/Chartbrew%20MongoDB%20数据集查询远程代码执行漏洞%20CVE-2026-25887/image-20260318110618009.png)
## 漏洞修复
- 更新至 Chartbrew 4.8.1 以上或最新版。