漏洞概述 在 Scoold (com.erudika:scoold) 中存在一个认证后的任意问题覆盖漏洞(Authenticated Arbitrary Question Overwrite)。该漏洞允许任何已登录的低权限用户通过向 接口提供客户端控制的 参数,来覆盖另一个用户的现有问题。由于问题 ID 公开暴露在标准 URL 中,攻击者无需猜测即可获取受害者 ID,进而覆盖其内容并破坏讨论线程的完整性。 影响范围 受影响包: (Maven) 受影响版本: 已修复版本: CVSS 评分: 6.5 / 10 (Moderate) 具体影响: 允许任何已登录的低权限用户覆盖任意现有问题。 导致未经授权的另一个用户现有问题被替换。 内容破坏(Content defacement)。 与问题相关的现有讨论线程被破坏。 误导性的现有回复、评论和讨论上下文带有攻击者控制的内容。 用户生成数据的直接完整性丢失。 讨论和审核工作流的中断。 修复方案 在 的 方法中,不应直接使用客户端提供的 作为新问题的对象 ID。应移除对 参数的依赖,或者在创建新问题时验证该 是否属于当前登录用户。如果意图是创建新问题,应始终生成新的 UUID 作为 ID。 POC 代码 1. 易受攻击的代码 (QuestionsController.java) 2. 利用代码 (HTTP Request) 在步骤 6 中,攻击者作为 提交正常的 请求,并在请求体中附加受害者的 : (注:此处 为受害者问题的 ID,攻击者同时提交攻击内容如 , 等)