إصدار مكتبة النظام Glibc 2.32

بعد ستة أشهر من التطوير نشرت إصدار مكتبة النظام مكتبة جنو سي (جليبك) 2.32، والتي تتوافق تمامًا مع متطلبات ISO C11 و POSIX.1-2017. يتضمن الإصدار الجديد إصلاحات من 67 مطورًا.

تم التنفيذ في Glibc 2.32 تحسينات يمكنك ملاحظة:

  • تمت إضافة دعم لمعالجات Synopsys ARC HS (ARCv2 ISA). يتطلب المنفذ على الأقل binutils 2.32 وgcc 8.3 وLinux kernel 5.1 للتشغيل. يتم دعم ثلاثة متغيرات لـ ABI: arc-linux-gnu، وarc-linux-gnuhf، وarceb-linux-gnu (big-endian)؛
  • تحميل وحدات التدقيق المحددة في الأقسام DT_AUDIT و
    DT_DEPAUDIT للملف القابل للتنفيذ.

  • بالنسبة لبنية powerpc64le، يتم تنفيذ دعم النوع المزدوج الطويل IEEE128، والذي يتم تمكينه عند الإنشاء باستخدام خيار "-mabi=ieeelongdouble".
  • يتم شرح بعض واجهات برمجة التطبيقات باستخدام سمة "الوصول" لدول مجلس التعاون الخليجي، والتي تسمح بإنشاء تحذيرات أفضل عند تجميعها في مجلس التعاون الخليجي 10 لاكتشاف تجاوزات المخزن المؤقت المحتملة والسيناريوهات الأخرى خارج الحدود.
  • بالنسبة لأنظمة Linux، الوظائف pthread_attr_setsigmask_np و
    pthread_attr_getsigmask_np، والتي تمنح التطبيق القدرة على تحديد قناع إشارة للسلاسل التي تم إنشاؤها باستخدام pthread_create.

  • تم تحديث بيانات الترميز ومعلومات نوع الحرف وجداول التحويل الصوتي لدعم مواصفات Unicode 13.0.0 ؛
  • تمت إضافة ملف رأس جديد ، الذي يحدد المتغير __libc_single_threaded، والذي يمكن استخدامه في تطبيقات التحسينات ذات الترابط الواحد.
  • تمت إضافة الوظائف sigabbrev_np وsigdescr_np التي ترجع الاسم المختصر ووصف الإشارة (على سبيل المثال، "HUP" و"Hangup" لـ SIGHUP).
  • تمت إضافة الدالتين strerrorname_np وstrerrordesc_np اللتين ترجعان اسم الخطأ ووصفه (على سبيل المثال، "EINVAL" و"وسيطة غير صالحة" لـ EINVAL).
  • بالنسبة لمنصة ARM64، تمت إضافة علامة "--enable-standard-branch-protection" (أو -mbranch-protection=standard في دول مجلس التعاون الخليجي)، والتي تمكن آلية ARMv8.5-BTI (مؤشر هدف الفرع) من حماية تنفيذ مجموعات التعليمات التي لا ينبغي تنفيذها.الانتقالات المتفرعة. يتم تنفيذ حظر الانتقالات إلى أقسام تعسفية من التعليمات البرمجية لمنع إنشاء الأدوات الذكية في عمليات استغلال تستخدم تقنيات البرمجة الموجهة نحو العودة (ROP - البرمجة الموجهة نحو العودة؛ لا يحاول المهاجم وضع التعليمات البرمجية الخاصة به في الذاكرة، ولكنه يعمل على الأجزاء الموجودة بالفعل من تعليمات الآلة التي تنتهي بتعليمات التحكم في الإرجاع، والتي يتم من خلالها بناء سلسلة من الاستدعاءات للحصول على الوظيفة المطلوبة).
  • تم إجراء عملية تنظيف رئيسية للميزات القديمة، بما في ذلك إزالة خياري "--enable-obsolete-rpc" و"--enable-obsolete-nsl"، وملف الرأس . تم إهمال الوظائف sstk وsiginterrupt وsigpause وsighold وsigrelse وsigignore وsigset والمصفوفات sys_siglist و_sys_siglist وsys_sigabbrev والرموز sys_errlist و_sys_errlist وsys_nerr و_sys_nerr ووحدة NSS hesiod.
  • تم نقل ldconfig افتراضيًا لاستخدام تنسيق ld.so.cache الجديد، والذي تم دعمه في glibc لمدة 20 عامًا تقريبًا.
  • تم إصلاح نقاط الضعف:
    • CVE-2016-10228 – تحدث حلقة في الأداة المساعدة iconv عند التشغيل باستخدام الخيار "-c" عند معالجة بيانات غير صحيحة متعددة البايت.
    • CVE-2020-10029 تكديس الفساد عند استدعاء الدوال المثلثية باستخدام وسيطة فارغة زائفة.
    • CVE-2020-1752 - وصول للذاكرة بدون استخدام بعد في وظيفة glob عند توسيع مرجع إلى الدليل الرئيسي ("~المستخدم") في المسارات.
    • CVE-2020-6096 – معالجة غير صحيحة على منصة ARMv7 لقيم المعلمات السلبية في memcpy() وmemmove()، مما يحدد حجم المنطقة المنسوخة. يسمح تنظيم تنفيذ التعليمات البرمجية عند معالجة البيانات المنسقة بطريقة معينة في وظائف memcpy() و memmove(). ومن المهم أن هذه المشكلة بقي لم يتم تصحيحه لمدة شهرين تقريبًا منذ الكشف عن المعلومات علنًا وخمسة أشهر منذ إخطار مطوري Glibc.

المصدر: opennet.ru

إضافة تعليق