CVE-2026-54350
Budibase:已发布应用查询模板中的匿名 NoSQL 操作符注入
- 已发布
- 2026年6月26日
- 已更新
- 2026年6月30日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月8日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N低 · 未来 30 天
- 百分位
- 44.0%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Budibase 是一个开源低代码平台。在 3.39.12 之前,任何已发布 Budibase 应用的未认证访客都能读取底层 MongoDB、CouchDB、Elasticsearch、DynamoDB-PartiQL 或 REST-with-JSON-body 集合中的每个文档,并且当构建者发布了 PUBLIC 写查询时,可通过一个 HTTP 请求修改该集合中的每个文档。packages/server/src/sdk/workspace/queries/queries.ts:121-138 中的 enrichContext 将参数值替换到查询的原始 JSON 主体中,然后对结果执行 JSON.parses。packages/server/src/api/controllers/query/index.ts:61-71 中的验证器 validateQueryInputs 只拒绝用户输入中的 Handlebars 标记({{, }}),而不会转义 JSON 元字符(", \, })。包含右引号和额外键的参数值会将攻击者控制的字段提升到解析后的过滤器对象中。对于 Mongo find,解析后的过滤器直接传给 collection.find()(packages/server/src/integrations/mongodb.ts:506-510)。重复键的 JSON 解析会用 {name: {$exists: true}} 覆盖构建者的 {name: "..."} 并返回每个文档。针对 updateMany 查询(mongodb.ts:577-585)的相同原语将过滤器范围扩大到整个集合,而构建者控制的 $set 主体会对每个匹配的文档执行。packages/server/src/middleware/authorized.ts:141-148 中的授权中间件在查询角色为 PUBLIC 时短路。此路径未强制实施 CSRF。POST /api/v2/queries/:queryId(packages/server/src/api/routes/query.ts:63)在无会话的情况下接受该调用,仅需要一个可从已发布应用 URL 公开获取的 x-budibase-app-id 请求头。此漏洞已在 3.39.12 中修复。
来源
1PoC for CVE-2026-54350 — Budibase 未经认证的 NoSQL 操作符注入 (CVSS 10.0)。通过 PUBLIC 查询读取/批量写入任何文档集合。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。