CVE-2026-31805Discourse是一个开源论坛平台。在特定版本之前,其投票插件存在授权绕过漏洞。攻击者能够利用该漏洞,通过对post_id参数进行特殊构造,绕过权限检查,对无权访问的投票进行投票、取消投票或切换状态等未授权操作。
该漏洞是由于Discourse投票插件控制器中处理参数的逻辑不一致导致的。在处理post_id参数时,若将其作为数组传递(例如post_id[]=&post_id[]=target_id),框架的授权检查逻辑会解析数组中的第一个元素(通常是用户拥有权限的ID)并验证通过。然而,后续的投票查找逻辑却解析到了数组中的另一个ID(即攻击者想要操作的帖子)。这种逻辑差异允许攻击者通过伪造请求参数,在无需拥有目标帖子权限的情况下,执行投票、删除投票或更改投票状态的操作,从而破坏了论坛投票数据的公正性和完整性。