メールにより機密カテゴリの詳細が漏洩

プライベートな Discourse インスタンスで、Mailgun を経由してメールを送信しています。バージョン 2.4b1。

いくつかのグループで保護されたカテゴリがあります:

  • CategoryAGroupA で保護
  • CategoryBGroupB で保護

また、以下の 2 人のユーザーもいます:

  • User1

    • GroupA のメンバーです。
  • User2

    • GroupAGroupB の両方のメンバーです。

どちらのユーザーも 24 時間以上サイトを訪問していません。両者とも、アクセス可能なカテゴリの新しい投稿すべてについて通知を受け取る設定になっています。

新しいトピックが CategoryA に公開されましたが、すぐに CategoryB にカテゴリ変更されました。

数時間後に MailGun のログを確認したところ、User1User2 の両方が新しいトピックのメール通知を受信していることが分かりました。しかし、メールの件名にはトピックが CategoryB にあると表示されており、User2 はこのカテゴリの存在を事前に知りませんでした。

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 で修正され、ベータ版および安定版にもバックポートされました。

「いいね!」 11