OpenProject 跨项目会议议程注入漏洞 (GHSA-hh5p-gwfh-h245) 漏洞概述 OpenProject 存在一个未受限的 Section 查找 (Unscoped Section Lookup) 漏洞。拥有 权限的攻击者,可以在任意项目中向其他项目的会议中注入议程项。 漏洞原理:在移动议程项 ( ) 时,系统全局查找目标 Section ID,未校验该 Section 是否属于当前用户有权访问的项目。 权限绕过:虽然权限检查仅针对攻击者自己的项目(通过),但 回调会静默将议程项重新分配到目标 Section 所属的会议中。 验证缺失: 缺少 验证,导致跨项目注入成功。 影响范围 受影响版本:OpenProject <= 17.2.3 严重程度:HIGH (CVSS 3.1: 7.1) 影响维度: 完整性 (Integrity):攻击者可向实例中任意会议注入任意内容(标题、笔记等),用于钓鱼或社会工程。 机密性 (Confidentiality):低(盲注,攻击者无法读取受害者会议内容,但可确认会议存在)。 可用性 (Availability):无。 作用域 (Scope):实例级(Instance-wide),任何有权限的用户均可攻击整个实例。 修复方案 1. 控制器作用域限制:在 中查找 Section 时,增加 限制。 2. 添加验证:在 中添加 验证(参考 的实现)。 3. 防御性回调:在 回调中增加守卫,确保 与当前 一致。 POC / 利用代码 1. 漏洞代码片段 (Controller & Model) 2. 攻击者发送的 HTTP 请求 (Exploit Request) 注: 可以是任意项目的会议 Section ID(如 1, 2, 3...),即使攻击者无权访问该项目。