diff --git a/Web应用漏洞/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887.md b/Web应用漏洞/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887.md new file mode 100644 index 0000000..80db01f --- /dev/null +++ b/Web应用漏洞/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887.md @@ -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 以上或最新版。 diff --git a/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318105840677.png b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318105840677.png new file mode 100644 index 0000000..c7078e0 Binary files /dev/null and b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318105840677.png differ diff --git a/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110500927.png b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110500927.png new file mode 100644 index 0000000..dab8912 Binary files /dev/null and b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110500927.png differ diff --git a/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110618009.png b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110618009.png new file mode 100644 index 0000000..2122714 Binary files /dev/null and b/Web应用漏洞/images/Chartbrew MongoDB 数据集查询远程代码执行漏洞 CVE-2026-25887/image-20260318110618009.png differ