漏洞概述 该页面报告了oneDev BOPLA中的多个漏洞,所有问题均已得到项目所有者的确认。以下是关键漏洞的总结: 1. Issue 01 — Unauthorized Cross-Project Repository Fork via forkedFromId - 风险摘要:允许在命名空间内创建项目的用户可能能够创建一个fork项目,其 引用了用户不应能读取的源项目。 - 影响范围:受影响的流程包括复制仓库数据、LFS对象、提交元数据和项目头像信息,从源项目到攻击者控制的靶项目,而不强制执行源项目读取授权。 - 修复方案: - 要求明确的源项目可见性和/或代码读取授权,在接受 之前。 - 在实际fork服务实现中添加防御性验证。 - 添加回归测试: - “用户可创建项目” - 但“用户可能无法读取源仓库” 2. Issue 02 — Unauthorized Parent Project Rebinding via parentId - 风险摘要:能够管理项目的用户可能能够将项目的 更改为另一个父命名空间,其中用户不具有 权限。 - 影响范围:一旦父关系更改,项目路径、祖先继承、继承设置和权限传播链可能会相应更改。 - 修复方案: - 在变异实体之前保留原始父关系。 - 在应用新的 之前执行授权检查。 - 在下游项目更新逻辑中添加防御性验证。 - 添加回归测试: - “用户可管理项目” - 但“用户可能无法在目标命名空间下创建子项目” 3. Issue 03 — Default Branch Modification Protected Only by WriteCode - 风险摘要:REST API用于更改 目前似乎仅需要 权限。 - 影响范围:默认分支作为项目级控制平面属性,影响工作流自动化、分支选择逻辑和默认执行目标。 - 修复方案: - 与Web UI行为对齐REST授权语义。 - 要求 (或等效的 elevated control-plane 权限)。 - 审查其他项目级控制属性,以查找类似的权限不一致。 4. Issue 04 — Pull Request Modification Capability Delegation via Arbitrary Assignee - 风险摘要:通过任意指定人委托拉取请求修改能力。 - 影响范围:可能导致拉取请求被未经授权的用户修改。 - 修复方案:未提供具体修复方案。 5. Issue 05 — Unauthorized Exposure of Time-Tracking Information via Issue REST APIs - 风险摘要:问题时间跟踪信息似乎通过REST API向可以访问问题本身的用户暴露,即使这些用户没有专用的时间跟踪可见性权限。 - 影响范围:暴露的信息包括聚合时间统计和详细的工作日志条目。 - 修复方案: - 在返回问题对象和工作日志集合之前,要求 。 - 当调用者缺少相应权限时,隐藏或省略时间跟踪字段。 - 与现有的UI/service层授权语义对齐REST行为。 影响范围 Issue 01:可能导致未经授权的项目复制和元数据泄露。 Issue 02:可能导致项目层次结构和命名空间边界执行的破坏。 Issue 03:可能导致默认分支的未经授权修改,影响工作流自动化。 Issue 04:可能导致拉取请求的未经授权修改。 Issue 05:可能导致时间跟踪信息的未经授权暴露,影响团队工作负载分布、工作计划、协作模式等敏感操作细节。 修复方案 Issue 01:要求明确的源项目可见性和/或代码读取授权,添加防御性验证和回归测试。 Issue 02:保留原始父关系,执行授权检查,添加防御性验证和回归测试。 Issue 03:与Web UI行为对齐REST授权语义,要求更高权限,审查其他控制属性。 Issue 04:未提供具体修复方案。 Issue 05:要求 ,隐藏或省略时间跟踪字段,对齐REST行为。 POC代码或利用代码 页面中未提供具体的POC代码或利用代码。