تسريب تفاصيل الفئة المؤمنة عبر البريد الإلكتروني

نسخة من Private Discourse، إرسال البريد الإلكتروني عبر Mailgun. الإصدار 2.4b1.

من بين فئات متعددة محمية بمجموعات:

  • CategoryA محمية بـ GroupA
  • CategoryB محمية بـ GroupB

كما يوجد مستخدمان:

  • User1

    • عضو في GroupA.
  • User2

    • عضو في GroupA و GroupB.

لم يقم أي من المستخدمين بزيارة الموقع منذ أكثر من 24 ساعة. كلاهما لديه إعدادات إشعارات لجميع المنشورات الجديدة في الفئات التي يمكنه الوصول إليها.

تم نشر موضوع جديد في البداية في CategoryA، ثم تم نقله بسرعة إلى CategoryB.

بعد عدة ساعات، عند مراجعة السجلات في MailGun، لاحظت أن كلًا من User1 و User2 تلقيا إشعارات بريد إلكتروني بشأن الموضوع الجديد، لكن عنوان البريد الإلكتروني أشار إلى أن الموضوع ينتمي إلى CategoryB، وهي فئة لم يكن User2 يعرف بوجودها من قبل.

تم ضبط email time window mins على 5 دقائق، وتم إعادة تصنيف المنشور قبل مرور هذا الوقت بوقت طويل. تشير الملاحظة أسفل هذا الحقل إلى: انتظر (n) دقيقة قبل إرسال أي رسائل إشعار بريد إلكتروني، لتمكين المستخدمين من تعديل منشوراتهم وإنهائها نهائيًا.

يبدو أن هناك خللًا في منطق إشعارات البريد الإلكتروني؛ فقد تم نقل المنشور بعد ثوانٍ من نشره، وتؤكد رسائل البريد الإلكتروني أن إعادة التصنيف تمت قبل إرسالها. تم إرسال البريد الإلكتروني من فئة لم يكن المستخدم على علم بها أو لا يملك حق الوصول إليها، مما أدى في النهاية إلى كشف معلومات لطرف غير مخول.

في أسوأ الحالات، كنت أتوقع أن يُنسب البريد الإلكتروني إلى CategoryA التي يملك User1 حق الوصول إليها، رغم أن هذا يظل غير مرغوب فيه إذا تم نقل الموضوع خارج هذه الفئة قبل إرسال البريد الإلكتروني. المثالي هو أن يتم تحديد هذه الحالة عند موعد إرسال البريد الإلكتروني، مما يحمي من الأخطاء البشرية ويضمن عدم حدوث أي تسرب للمعلومات على الإطلاق.

3 إعجابات

شكرًا لتقاريرك. تم إصلاح المشكلة في FIX: Don't send notification email when user isn't allowed to see topic · discourse/discourse@d513c28 · GitHub وتمت إعادة نقلها إلى إصدارات بيتا/المستقرة.

11 إعجابًا