ثغرة Discourse CVE-2021-41163

مرحباً بالجميع،

تم إخباري مؤخراً بوجود ثغرة أمنية في Discourse NVD - CVE-2021-41163 (nist.gov)

أنا متشوق لأن الثغرة تتعلق بعنوان URL /webhooks/aws، هل يتأثر Discourse في Azure بهذه الثغرة أيضاً؟

كل حالة تتأثر (إذا لم يتم تصحيحها) بغض النظر عن مكان استضافتها.

مرحبًا @Falco، شكرًا لك على الرد السريع!

أنا لست خبيرًا في Ruby، لكنني اعتقدت أن سطر الكود هذا سيعيق تنفيذ الجزء الضعيف على Azure لأنه سيقوم بتقييمه كـ false؟! يرجى تصحيحي هنا لأنني لا أعرف Ruby.

أيضًا، كحل مؤقت (band-aid) وليس مُوصى به، حيث إن الترقية هي الحل الأفضل بنسبة 100%، هل يمكنك تعديل ملف nginx لإصلاح المشكلة مؤقتًا حتى تقوم بالترقية؟
على النحو التالي:

  1. اتصل بالمachine عبر ssh
  2. انتقل إلى /var/discourse
  3. شغّل الأمر ./launcher enter app
  4. انتقل إلى /etc/nginx/conf.d/
  5. عدّل discourse.conf
  6. أضف:
location ~* /webhooks/aws {
    deny all;
}
  1. أعد تشغيل nginx بالأمر sv restart nginx

لدي نية واضحة للترقية قريبًا. لكنني أحتاج إلى أسبوع تقريبًا لتنظيم الأمور لبيئتنا الحية، وأود أن أكون آمنًا في هذه الأثناء.

سيتم تنفيذ ذلك السطر على أي حال، لأن هذا المعامل هو إدخال من المستخدم.

قد ينجح ذلك، ولكن كما ذكرت فهو حل مؤقت. إعادة البناء ستزيل الإصلاح، وكن حذرًا جدًا أثناء الاختبار لأن إعدادات nginx معقدة جدًا للحصول عليها بشكل صحيح.

بناءً على تحليل فريق الأمن لدينا، ليست هذه ثغرة في Discourse. الثغرة موجودة في نظام توزيع رسائل SNS (MDS) (لا يمكن الخوض في التفاصيل هنا)، مما يعني أنها ستؤثر على كل حزمة تستخدم أو تستفيد من خدمة SNS.

نعم، المشكلة ناتجة بالفعل عن مشكلة في السلسلة العلوية في مكتبة aws-sdk-sns. ولكن من المهم إدراك أنه - نظرًا لأن Discourse تستخدم هذه المكتبة وتعرض الخطأ للعالم - فإن كل مثيل من Discourse معرض للخطر حتى لو لم يستخدم فعليًا خدمة AWS SNS.

لذلك، بينما لا تُعد هذه “خطأ في Discourse”، إلا أنها بالتأكيد “ثغرة أمنية في Discourse”.

هل تم إصلاح هذه الثغرة؟ شكرًا لك.

نعم، لكن يجب أن تتأكد من تطبيق التصحيح. اقرأ الموضوع. :slight_smile:

هل لن يساعد إعادة بناء تطبيق المشغل البسيط

launcher rebuild app

في إصلاح هذه الثغرة الأمنية؟

./launcher rebuild app سيُطبّق أحدث التحديثات على مثيل Discourse الخاص بك، وسيتضمّن التصحيح لهذه المشكلة :+1:

يمكن العثور على المعلومات الرسمية على RCE via malicious SNS subscription payload · Advisory · discourse/discourse · GitHub

يبدو أفضل :slight_smile: