يأتي Glibc 2.34 مع إصلاحات نقاط الضعف والوظائف الجديدة لنظام Linux والمزيد

مؤخرا تم الإعلان عن إصدار النسخة الجديدة من Glibc 2.34 التي تأتي بعد ستة أشهر من التطوير والتي تم فيها إجراء العديد من التغييرات المهمة للغاية ، من بينها إدراج مكتبات libpthread و libdl و libutil و libanl ، بالإضافة إلى إصلاحات الأخطاء المختلفة التي تسبب أحدها في حدوث انسداد.

بالنسبة لأولئك الذين ليسوا على دراية بـ Glibc ، يجب أن يعرفوا ما هو مكتبة جنو سي ، تُعرف باسم glibc وهي مكتبة وقت تشغيل GNU C القياسية. على الأنظمة التي يتم استخدامها فيها ، فإن مكتبة C هذه يوفر ويحدد مكالمات النظام والوظائف الأساسية الأخرى ، ويتم استخدامه من قبل جميع البرامج تقريبًا. 

الميزات الرئيسية الجديدة لـ Glibc 2.34

في هذا الإصدار الجديد من Glibc 2.34 الذي يتم تقديمه تم دمج libpthread و libdl و libutil و libanl في المكتبة الرئيسية، باستخدام وظائفه في التطبيقات لم يعد يتطلب ربطها بعلامات -lpthread و -ldl و -lutil و -lanl.

علاوة على ذلك ، ذكر أن تم إجراء الاستعدادات لدمج libreolv في libc ، مع التكامل سيسمح بعملية تحديث glibc أكثر سلاسة وسيعمل على تبسيط تنفيذ وقت التشغيل كما تم توفير مكتبات كعب روتين للتوافق مع التطبيقات التي تم إنشاؤها باستخدام الإصدارات السابقة من glibc.

من جانب التغييرات تركز على لينكس يسلط Glibc 2.34 الضوء على إضافة القدرة على استخدام نوع 64 بت time_t في التكوينات التي تستخدم النوع time_t تقليديا 32 بت. هذه الميزة متاحة فقط على الأنظمة التي تحتوي على kernel 5.1 والإصدارات الأحدث.

تغيير آخر محدد لنظام Linux هو تنفيذ وظيفة execveatأن يسمح بتشغيل ملف قابل للتنفيذ من واصف ملف مفتوح. تُستخدم الوظيفة الجديدة أيضًا في تنفيذ استدعاء fexecve ، والذي لا يتطلب تثبيت / proc pseudo-filesystem عند بدء التشغيل.

تمت إضافة الوظيفة أيضًا close_range () المتوفر لإصدارات Linux 5.9 وأعلى وأيها يمكن أن يكون تستخدم للسماح لعملية إغلاق مجموعة كاملة من واصفات الملفات فتح في نفس الوقت ، بالإضافة إلى تنفيذ المعلمة glibc.pthread.stack_cache_size ، والتي يمكن استخدامها لضبط حجم ذاكرة التخزين المؤقت لمكدس pthread.

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

بالنسبة للجزء من الثغرات الأمنية التي تم إصلاحها في Glibc 2.34 ، تم ذكر ما يلي:

CVE-2021-27645: فشلت عملية nscd (عفريت التخزين المؤقت لخادم الأسماء) بسبب استدعاء مزدوج للوظيفة المجانية أثناء معالجة طلبات مجموعة الشبكة المصممة خصيصًا.

CVE-2021-33574: الوصول إلى منطقة الذاكرة التي تم تحريرها بالفعل (use-after-free) في وظيفة mq_notify عند استخدام نوع إعلام SIGEV_THREAD مع سمة مؤشر ترابط تم تعيين قناع ربط CPU بديل لها. يمكن أن تتسبب المشكلة في حدوث عطل ، ولكن لا يتم استبعاد خيارات الهجوم الأخرى.

CVE-2021-35942: قد يؤدي تجاوز حجم المعلمة في وظيفة wordexp إلى تعطل التطبيق.

من التغييرات الأخرى التي تبرز:

  • تمت إضافة وظيفة timespec_getres ، المحددة في مسودة معيار ISO C2X ، وتمت زيادة وظيفة timepec_get بقدرات مشابهة لوظيفة POSIX clock_getres.
  • في ملف وحدات gconv ، لم يتبق سوى مجموعة صغيرة من وحدات gconv الرئيسية ، وتم نقل الباقي إلى ملف gconv-modules-extra.conf إضافي موجود في دليل gconv-modules.d.
  • تمت إزالة استخدام الروابط الرمزية لربط الكائنات المشتركة القابلة للتثبيت بإصدار Glibc. يتم الآن تثبيت هذه الكائنات كما هي (على سبيل المثال ، أصبح libc.so.6 الآن ملفًا وليس رابطًا لـ libc-2.34.so).
  • في نظام Linux ، تتطلب وظائف مثل shm_open و sem_open الآن نظام ملفات للذاكرة المشتركة المثبتة على نقطة التحميل / dev / shm.

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


أضف كمصدر مفضل في جوجل