اكتشف ثغرة أمنية في تطبيق TIPC لنواة Linux

مؤخرا اندلعت الأخبار ذلك حدد الباحث الأمني ​​ثغرة خطيرة (مدرج بالفعل ضمن CVE-2021-43267) في تنفيذ بروتوكول شبكة TIPC متوفر في Linux kernel ، والذي يسمح بتنفيذ التعليمات البرمجية عن بُعد بامتيازات kernel عن طريق إرسال حزمة شبكة مُعدة خصيصًا.

يتم التخفيف من خطورة المشكلة من خلال حقيقة أن الهجوم يتطلب تمكين دعم TIPC بشكل صريح على النظام (عن طريق تحميل وتكوين الوحدة النمطية tipc.ko kernel) ، والتي لا يتم إجراؤها افتراضيًا على التوزيعات بخلاف Linux. المتخصصة.

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

تم دعم TIPC منذ نواة Linux 3.19 ، ولكن تم تضمين الكود الذي أدى إلى الثغرة الأمنية في نواة 5.10.. تم تطوير بروتوكول TIPC في الأصل بواسطة Ericsson ، وهو يهدف إلى تنظيم الاتصال بين العمليات في مجموعة ويتم تنشيطه بشكل أساسي على عقد المجموعة.

تيبك يمكن أن تعمل عبر إيثرنت وعبر UDP (منفذ الشبكة 6118). في حالة العمل عبر Ethernet ، يمكن تنفيذ الهجوم من الشبكة المحلية ، وعند استخدام UDP ، من الشبكة العالمية ، إذا كان المنفذ غير مغطى بجدار حماية. يمكن أيضًا تنفيذ الهجوم بواسطة مستخدم محلي بدون امتيازات على المضيف. لتمكين TIPC ، يجب تحميل الوحدة النمطية tipc.ko kernel وتكوين الارتباط بواجهة الشبكة باستخدام netlink أو الأداة المساعدة tipc.

يتم تنفيذ البروتوكول في وحدة kernel مجمعة مع جميع توزيعات Linux الرئيسية. عند تحميله بواسطة مستخدم ، يمكن استخدامه كموصل ويمكن تهيئته في واجهة باستخدام netlink (أو باستخدام تلميح أداة مساحة المستخدم ، والذي سيجعل مكالمات netlink هذه) كمستخدم غير مميز.

يمكن تكوين TIPC للعمل عبر بروتوكول حامل مثل Ethernet أو UDP (في الحالة الأخيرة ، يستمع kernel إلى المنفذ 6118 للرسائل الواردة من أي جهاز). نظرًا لأن المستخدم ذو الامتيازات المنخفضة لا يمكنه إنشاء إطارات إيثرنت خام ، فإن تعيين الحامل على UDP يجعل من السهل كتابة استغلال محلي.

تتجلى الثغرة الأمنية في وظيفة tipc_crypto_key_rc وهي ناتجة عن نقص في التحقق المناسب المراسلات بين ما تم تحديده في العنوان والحجم الفعلي للبيانات عند تحليل الحزم من نوع MSG_CRYPTO المستخدم للحصول على مفاتيح التشفير من العقد الأخرى في المجموعة من أجل فك تشفير الرسائل المرسلة من هذه العقد لاحقًا.

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

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

تم إصلاح الثغرة الأمنية في النوى 5.15.0 و 5.10.77 و 5.14.16، على الرغم من ظهور المشكلة ولم يتم إصلاحها بعد في Debian 11 و Ubuntu 21.04 / 21.10 و SUSE (في فرع SLE15-SP4 لم يتم إصداره بعد) و RHEL (لم يتم تفصيل ما إذا كان الحل الضعيف قد تم تحديثه) و Fedora.

رغم أن تم بالفعل إصدار تحديث kernel لـ Arch Linux والتوزيعات ذات النواة السابقة للإصدار 5.10 ، مثل Debian 10 و Ubuntu 20.04 ، لن تتأثر.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

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

*

*

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