نشر الباحث الأمني ​​للقراصنة القانونيين Dawid Golunski تفاصيل عن ثغرة أمنية غير مصرح بها لإعادة تعيين كلمة المرور في نواة WordPress. أوضح Golunski كيف يمكن للمهاجم ، في ظل ظروف معينة ، اعتراض البريد الإلكتروني الخاص بإعادة تعيين كلمة المرور والوصول إلى حساب المستخدم.

والدليل على مفهوم روافع وورد باستخدام متغير SERVER_NAME للحصول على اسم مضيف الخادم لإنشاء رأس من / العودة مسار كلمة المرور الصادرة إعادة تعيين البريد الإلكتروني.

تعمل خوادم الويب الرئيسية مثل Apache على تعيين متغير SERVER_NAME افتراضيًا باستخدام اسم المضيف الذي يوفره العميل (في رأس HTTP_HOST):

Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

نظرًا لأنه يمكن تعديل SERVER_NAME ، يمكن للمهاجم تهيئته في مجال تعسفي من اختياره ، على سبيل المثال:

Attackers-mxserver.com

مما سيعطي ووردبريس $ from_email التكوين ل

[البريد الإلكتروني محمي]

وبالتالي يتسبب في إرسال بريد إلكتروني صادر يحتوي على مسار إرجاع / إرجاع مسار على هذا العنوان الضار.

تعتمد نتائج هذا الهجوم تحديدًا على بيئة الخادم ، والتكوين المحدد لخادم البريد ، وفي بعض الحالات ، قد تتطلب تفاعل المستخدم. يتضمن تقرير Golunski تفصيلاً أكثر تحديدًا للطرق الممكنة التي يمكن استخدامها.

بعد الإبلاغ عن المشكلة إلى فريق أمان WordPress في يوليو 2016 وأيضًا من خلال موقع انترنت HackerOne ، لم ير Golunski أي تقدم وقرر ذلك نشر تفاصيل الضعف للجمهور.

على الرغم من عدم وجود تصحيح رسمي حتى الآن ، إلا أن نجم أمان WordPress آرون كامبل قال إن المشكلة ليست خطيرة بقدر ما يمكن أن تكون.

« إنها مشكلة ذات أولوية أقل ، لكننا على دراية بها وهي في قائمة الانتظار لدينا”سعيد كامبل. وأوضح المجموعة الفريدة من الظروف التي ستكون مطلوبة حتى تكون نقطة ضعف خطيرة.

« لكي يكون للمشكلة تأثير على الأمان ، يجب أن يسمح الخادم بتجاوز رأس يوفره المستخدم _SERVER $ ['SERVER_NAME']”سعيد كامبل. "نعتبر أن تهيئة الخادم غير كافية (مثل" display_errors "حيثما ينطبق ذلك على خادم الإنتاج) ، وهو أمر خارج عن سيطرتنا للأسف.

اختبر كامبل خوادم Apache و nginx الشخصية الخاصة به ولم يتم ترخيص أي منها لهذا الغرض. بالإضافة إلى وجود خادم تم تكوينه بشكل خاطئ ، قال كامبل إن أحد الإجراءات التالية يجب أن يحدث أيضًا:

  • يجب على المستخدم الرد على رسالة بريد إلكتروني لإعادة تعيين كلمة المرور
  • يجب أن يرد الرد التلقائي على البريد الإلكتروني ويتضمن الأصل
  • يجب أن يتم اختراق خادم البريد الإلكتروني أو تحميله بشكل زائد وإعادة الرسالة إلى المرسل مع الملف محتويات سليم

« إذا كان خادمك ضعيفًا ولم يكن لديك القدرة على إصلاح تكوين الخادم ، فلا يزال عليك إجراء أي تغييرات على ملفات WordPress للتخفيف من المشكلة.”سعيد كامبل. "القليل من PHP مثل هذا في المكون الإضافي سيحدد عنوان بريد إلكتروني ثابت من اختيارك:"

add_filter ('wp_mail_from' ، وظيفة ($ from_email) {return '[البريد الإلكتروني محمي]'؛ })؛

قال كامبل إن أي تغييرات يقوم بها WordPress على النواة ستكون على الأرجح عبر تذكرة تتعقب المشكلة حاليًا بدون منظور أمني. وقال إنه من غير المرجح أن يأتي الإصلاح في الإصدار الأمني ​​القادم ، لكن الفريق يعمل بنشاط على ذلك. إذا وجدوا وسيلة جيدة لتخفيف المشكلة ، قال كامبل إنهم سيشاركونها بمجرد أن يتوصلوا إلى جميع التداعيات المحتملة.

و أنتم ؟ ما رأيك في هذا الضعف؟