CVE-2026-27454Discourse是一个开源讨论平台。在特定版本之前,系统存在一处权限绕过漏洞。攻击者可以通过构造特定的请求`/posts/:id.json?version=X`,绕过授权检查直接读取被管理员隐藏的帖子历史修订版本。该漏洞源于`display_post`方法在调用`post.revert_to`时未验证用户是否有权查看编辑历史,导致敏感信息泄露。
该漏洞属于不安全的直接对象引用(IDOR)。在受影响的Discourse版本中,`display_post`方法处理包含`version`参数的请求时,直接调用`post.revert_to`恢复指定版本的修订,而未调用`guardian.ensure_can_see!`进行权限校验。攻击者无需认证即可利用此漏洞,通过遍历递增的版本号(如version=1, 2...),枚举出帖子的历史修订记录。即便管理员隐藏了某些包含敏感信息的修订版,攻击者依然能够通过接口直接获取这些隐藏内容的原文。修复方案是在恢复修订前增加权限校验,确保只有具备相应权限的用户才能访问特定修订版本。