CVE-2026-33410Discourse是一个开源讨论平台。在2026.3.0-latest.1、2026.2.1和2026.1.2之前的版本中,其聊天直接消息API存在两个严重的授权问题。首先,创建直接消息频道时未验证`target_groups`参数的可见性,导致私有群组成员身份泄露。其次,`can_chat?`检查逻辑不完整,未验证`chat_enabled`用户偏好,导致被禁用聊天的用户仍可查询其他用户的直接消息通道,可能泄露私密消息内容。官方已发布补丁修复此问题。
该漏洞源于Discourse聊天直接消息API中的访问控制逻辑缺陷。第一个问题涉及权限校验缺失,当攻击者发送API请求创建或修改DM频道时,可以通过`target_groups`参数指定私有或隐藏群组的名称。由于服务器端未验证当前用户是否有权限查看该群组的成员信息,直接将该参数传递给数据库查询,导致攻击者能够获取该群组内所有成员的身份列表。第二个问题在于用户权限检查逻辑不完整,系统仅验证了用户是否属于某个群组,却忽略了用户个人的`chat_enabled`设置。这意味着即使管理员禁用了某用户的聊天功能,该用户仍可通过API调用创建或查询其他用户之间的直接消息通道。在这个过程中,系统返回的序列化频道响应可能包含其他用户之间的`last_message`内容,从而造成敏感隐私信息的泄露。攻击者无需复杂交互,仅需构造特定的API请求即可利用这两个漏洞。