漏洞概述 漏洞ID: 0037093 项目名称: mantabot 类别: security 查看状态: public 提交日期: 2026-04-19 04:51 最后更新: 2026-05-10 07:58 报告者: TristanSec 分配给: dregad 优先级: high 严重性: major 可复现性: always 状态: closed 解决方案: duplicate 摘要: 0037093: Authorization Bypass in Bugnote Editing via Issue Update API 描述: 函数在 MantisBT 中允许用户使用 (级别 40)访问、更改查看状态,并修改时间跟踪在属于其他用户的 bugnotes 上 —— 绕过 函数所需的 (级别 55)阈值。 漏洞详情 CWE: CWE-862 (Incorrect Authorization) CVSS: 3.1 (Medium) — AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N/E:P/RL:O/RC:C 受影响版本: MantisBT 2.25.0-dev (and likely all prior versions with SOAP/REST API) 所需权限: UPDATER access level (level 40) to the project 根本原因 在 中仅检查 (UPDATER, level 40)在行 1012 处,而在处理笔记修改之前(行 1180-1208)。 函数 、 和 是零授权检查的原始数据库操作。 相比之下,专用的 (行 1461)正确执行了以下检查: 用于笔记所有者(行 1497-1498) 用于非所有者(行 1504-1506) 两者默认均为 (级别 55)。 默认访问级别 影响 1. UPDATER 可以编辑由 DEVELOPER/MANAGER/ADMIN 创建的笔记 —— 绕过 DEVELOPER 阈值 2. UPDATER 可以将私有笔记更改为公开 —— 暴露机密内部讨论 3. UPDATER 可以将公开笔记更改为私有 —— 隐藏来自报告者/查看者的信息 复现步骤 概念验证 此操作通过 REST API 成功,但同一用户通过专用笔记更新端点将被拒绝。 修复方案 在 笔记修改循环中添加每笔记授权检查(约行 1185): 标签 无标签附加 附件文件 wlm-2-bugnote-edit-auth-bypass.md (3,909 bytes) 关系 重复于: 0037089 关闭 分配给: dregad CVE-2026-42070: REST/SOAP mc_issue_update Embedded Note Update Bypasses Note-Level Authorization 活动 dregad (2026-04-19 19:10): 感谢详细且写得好的报告。此漏洞已被另一位研究人员识别,因此我将其关闭为 CVE-0037089 的重复项,但我仍将为你发现漏洞而致谢(CVE 尚未分配)。如我之前邮件中所述,请让我知道你的 GitHub ID。 dregad (2026-04-24 13:03): 2. UPDATER 可以将私有笔记更改为公开 —— 暴露机密内部讨论。此情况仅在 UPDATER 用户也有私有 bugnote_threshold(默认情况下不是)时才可复现。mc_issue_update() 调用 bugnote_get_all_visible_bugnotes(),仅返回 UPDATER 用户有权访问的 bugnotes,排除其他用户的私有笔记。 dregad (2026-05-02 05:34): @TristanSec 我有一个补丁准备审查以修复此漏洞,我已向你发送邀请到私有仓库,以便你可以查看并提供反馈。