الثغرات الأمنية في OpenSMTPD التي تسمح بالوصول عن بعد والمحلي إلى الجذر

شركة كواليس مكشوف ثغرة أمنية أخرى خطيرة عن بعد (CVE-2020-8794) في خادم البريد أوبنسمتبدتم تطويره بواسطة مشروع OpenBSD. مثل تلك التي تم تحديدها في نهاية يناير عالي التأثر، هناك مشكلة جديدة تجعل من الممكن تنفيذ أوامر shell التعسفية عن بعد على خادم يتمتع بحقوق المستخدم الجذر. وهن مستبعد في القضية افتحSMTPD 6.6.4p1.

سبب المشكلة هو وجود خطأ في التعليمات البرمجية التي تقوم بتسليم البريد إلى خادم البريد البعيد (وليس في التعليمات البرمجية التي تعالج الاتصالات الواردة). الهجوم ممكن من جانب العميل ومن جانب الخادم. من جانب العميل، يكون الهجوم ممكنًا في التكوين الافتراضي لـ OpenSMTPD، حيث يقبل OpenSMTPD الطلبات فقط على واجهة الشبكة الداخلية (المضيف المحلي) ويرسل رسائل بريد إلى خوادم خارجية. لاستغلال الثغرة الأمنية، يكفي أنه أثناء تسليم الرسالة، يقوم OpenSMTPD بإنشاء جلسة مع خادم بريد يتحكم فيه المهاجم، أو أن يتمكن المهاجم من الدخول في اتصال العميل (MITM أو إعادة التوجيه أثناء الهجمات عبر DNS أو BGP ).

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

المشكلة موجودة في الدالة mta_io() في التعليمات البرمجية لتحليل الاستجابة متعددة الأسطر التي يتم إرجاعها بواسطة الخادم البعيد بعد إنشاء اتصال (على سبيل المثال، "250-ENHANCEDSTATUSCODES" و"250 HELP"). يحسب OpenSMTPD أن السطر الأول يتضمن رقمًا مكونًا من ثلاثة أرقام ونصًا مفصولاً بحرف "-"، ويحتوي السطر الثاني على رقم مكون من ثلاثة أرقام ونصًا مفصولاً بمسافة. إذا لم يكن الرقم المكون من ثلاثة أرقام متبوعًا بمسافة ونص في السطر الثاني، فسيتم تعيين المؤشر المستخدم لتعريف النص على البايت الذي يلي الحرف '\0' ويتم إجراء محاولة لنسخ البيانات بعد النهاية من الخط في المخزن المؤقت.

وبناءً على طلب مشروع OpenBSD، تم تأجيل نشر التفاصيل حول استغلال الثغرة حتى 26 فبراير للسماح للمستخدمين بتحديث أنظمتهم. كانت المشكلة موجودة في قاعدة التعليمات البرمجية منذ ديسمبر 2015، ولكن الاستغلال قبل تنفيذ التعليمات البرمجية بامتيازات الجذر أصبح ممكنًا منذ مايو 2018. أعد الباحثون نموذجًا أوليًا عمليًا للاستغلال، والذي تم اختباره بنجاح في إصدارات OpenSMTPD لـ OpenBSD 6.6 وOpenBSD 5.9 وDebian 10 وDebian 11 (اختبار) وFedora 31.

في OpenSMTPD أيضًا المحددة ثغرة أمنية أخرى (CVE-2020-8793) تسمح للمستخدم المحلي بقراءة السطر الأول من أي ملف على النظام. على سبيل المثال، يمكنك قراءة السطر الأول من /etc/master.passwd، الذي يحتوي على تجزئة كلمة مرور المستخدم الجذر. تتيح لك الثغرة الأمنية أيضًا قراءة محتويات ملف يملكه مستخدم آخر بالكامل إذا كان هذا الملف موجودًا في نفس نظام الملفات مثل الدليل /var/spool/smtpd/. هذه المشكلة غير قابلة للاستغلال في العديد من توزيعات Linux حيث يتم تعيين قيمة /proc/sys/fs/protected_hardlinks على 1.

المشكلة هي نتيجة للتخلص غير الكامل проблем، تم التعبير عنها أثناء التدقيق الذي أجرته Qualys في عام 2015. يمكن للمهاجم تنفيذ التعليمات البرمجية الخاصة به باستخدام حقوق المجموعة "_smtpq" عن طريق تعيين المتغير "PATH=". ووضع برنامج نصي يسمى makemap في الدليل الحالي (تقوم الأداة المساعدة smtpctl بتشغيل makemap دون تحديد المسار بشكل صريح). من خلال الوصول إلى المجموعة "_smtpq"، يمكن للمهاجم بعد ذلك التسبب في حالة سباق (إنشاء ملف كبير في الدليل غير المتصل وإرسال إشارة SIGSTOP)، وقبل اكتمال المعالجة، استبدل الملف الموجود في الدليل غير المتصل بملف ثابت رابط رمزي يشير إلى الملف الهدف الذي يجب قراءة محتوياته.

من الجدير بالذكر أن الثغرة الأمنية في Fedora 31 تسمح لك بالحصول على امتيازات المجموعة الجذرية على الفور، نظرًا لأن عملية smtpctl مجهزة بعلامة جذر setgid، بدلاً من علامة setgid smtpq. من خلال الوصول إلى المجموعة الجذرية، يمكنك الكتابة فوق محتويات /var/lib/sss/mc/passwd والحصول على حق الوصول الكامل إلى الجذر إلى النظام.

المصدر: opennet.ru

إضافة تعليق