تم اكتشاف ثغرة أمنية في sudo تؤثر على Linux Mint و Elementary OS

مؤخرا تم الكشف عن ثغرة أمنية في الأداة المساعدة sudo (تُستخدم لتنظيم منح حقوق الإدارة لبرنامج واحد أو تنفيذ الأوامر نيابة عن مستخدمين آخرين) المصنفة كـ "CVE-2019-18634 يسمح لك بزيادة الامتيازات الخاصة بك على النظام للمستخدم الجذر.

تم اكتشاف المشكلة منذ إصدار sudo الإصدار 1.7.1 حتى الإصدار 1.8.29 الذي يمكن استغلالها فقط عند استخدام خيار "pwfeedback" في ملف / etc / sudoers ، الذي يتم تعطيله افتراضيًا ، في الإصدارات الأحدث من sudo ، ولكن يتم تنشيطه في بعض التوزيعات مثل Linux Mint و Elementary OS.

يسمح خيار "pwfeedback" بعرض الحرف "*" بعد إدخال كل حرف عند إدخال كلمة المرور.

بسبب خطأ في تنفيذ دالة getln () المعرفة في ملف tgetpass.c ، تحت تسلسل إدخال قياسي (ستدين)، السطر الطويل جدًا الذي يحتوي على كلمة مرور قد لا يتناسب مع المخزن المؤقت المخصص والكتابة فوق البيانات الأخرى الموجودة على المكدس. يحدث التجاوز عند تشغيل كود sudo بامتيازات الجذر.

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

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

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

يمكن لأي مستخدم استغلال المشكلة، بغض النظر عن حقوق استخدام sudo ووجود إعدادات خاصة بالمستخدم في sudoers.

يمكن للمستخدم الذي يتمتع بامتيازات sudo التحقق مما إذا كان «pwfeedback»يتم تمكينه عن طريق تشغيل:

  sudo -l

إذا "pwfeedbackيظهر في الإخراج «مطابقة إدخالات القيمة الافتراضية» ، تكوين sudoers تبدو متأثرة. في المثال التالي ، تكوين sudoers ضعيف:

 sudo -l

Matching Defaults entries for “USER” on linux-build:

insults, pwfeedback, mail_badpass, mailerpath=/usr/sbin/sendmail

يمكن لمستخدم USER تشغيل الأوامر التالية في linux-build:

         (ALL: ALL) ALL

حول الخطأ ، تم توضيح أنه يمكن استغلال الخطأ دون الحاجة إلى أذونات sudo ، فهو يتطلب ذلك فقط pwfeedback ممكّن. يمكن تكرار الخطأ بتمرير إدخال كبير إلى sudo عبر أنبوب عندما يطلب كلمة مرور.

على سبيل المثال:

perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id

Password: Segmentation fault

هناك نوعان من العيوب التي تساهم في هذه الثغرة الأمنية:

  • لا يتم تجاهل خيار "pwfeedback" ، كما ينبغي ، عند القراءة من شيء آخر غير الجهاز الطرفي. نظرًا لعدم وجود محطة طرفية ، تظل النسخة المحفوظة من حرف محو الخط في القيمة الأولية الخاصة بها وهي 0.

  • لا يقوم الكود الذي يمسح خط العلامات النجمية بإعادة تعيين موضع المخزن المؤقت بشكل صحيح إذا كان هناك خطأ في الكتابة ، ولكنه يعيد تعيين الطول المتبقي للمخزن المؤقت. نتيجة لذلك ، يمكن لوظيفة getln () الكتابة بعد نهاية المخزن المؤقت.

وأخيرا، تم الإبلاغ عن إصلاح المشكلة في الإصدار sudo 1.8.31، تم نشره قبل ساعات قليلة. على الرغم من أن الضعف في التوزيعات لا يزال غير مصحح بحيث يتم سؤال مستخدمي التوزيعات المتأثرة أو أنهم اكتشفوا أن تكوين pwfeedback موجود في الملف / الخ / sudoers, التحديث إلى الإصدار الجديد من sudo.

يذكر أن لمنع المشكلة، الشيء الأكثر أهمية هو أنه يجب عليك التحقق من أن التكوين /pwfeedback ليس في / الخ / sudoers وإذا لزم الأمر ، يجب إلغاء تنشيطه.

مصدر: https://www.openwall.com


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.