安全类别详情通过电子邮件泄露

Private Discourse 实例,通过 Mailgun 发送邮件。版本 2.4b1。

在多个组受保护的分类中:

  • CategoryAGroupA 保护
  • CategoryBGroupB 保护

此外还有两位用户:

  • User1

    • GroupA 的成员。
  • User2

    • GroupAGroupB 的成员。

两位用户均超过 24 小时未访问站点。两人都已设置通知,接收其有权访问的所有分类中的新帖子通知。

一个新主题发布时最初被放入 CategoryA,但很快被重新分类到 CategoryB

数小时后,我在检查 MailGun 的日志时发现,User1User2 都收到了该新主题的电邮通知,但邮件标题中标注该主题属于 CategoryB,而 User2 此前根本不知道 CategoryB 的存在。

email time window mins(邮件时间窗口,分钟)设置为 5 分钟,而帖子被重新分类的时间远早于该时间窗口到期。该字段下方的说明写着:在发送任何通知邮件之前等待(n)分钟,以便用户有机会编辑并最终确定其帖子。

看来邮件通知的逻辑存在问题:帖子在发布后几秒钟就被移动了,而邮件证据表明,重新分类发生在邮件发送之前。邮件是从用户既不知情也无法访问的分类发送的,最终导致信息泄露给了不该接收的一方。

在最坏的情况下,我期望邮件应归属为 User1 有权访问的 CategoryA,尽管如果主题在邮件发送前又被移出了该分类,这仍然不可取。理想情况下,应在邮件准备发送时进行最终确认,这样可以避免人为错误,并完全杜绝信息泄露。

3 个赞

感谢报告。此问题已在 FIX: Don't send notification email when user isn't allowed to see topic · discourse/discourse@d513c28 · GitHub 中修复,并已向后移植到 beta 和稳定版。

11 个赞