حددت Qualys ثغرة أمنية خطيرة (CVE-2023-4911) في رابط ld.so، المتوفر كجزء من مكتبة Glibc System C (GNU libc). تسمح الثغرة الأمنية للمستخدم المحلي برفع امتيازاته في النظام عن طريق تحديد بيانات منسقة خصيصًا في متغير البيئة GLIBC_TUNABLES قبل تشغيل ملف قابل للتنفيذ باستخدام علامة الجذر suid، على سبيل المثال، /usr/bin/su.
تم إثبات القدرة على استغلال الثغرة الأمنية بنجاح في Fedora 37 و38 وUbuntu 22.04 و23.04 وDebian 12 و13. ومن المفترض أن تظهر الثغرة الأمنية أيضًا في أي توزيعات أخرى تستخدم Glibc. التوزيعات المعتمدة على مكتبة Musl system C، مثل Alpine Linux، لا تتأثر بالمشكلة. تم إصلاح الثغرة الأمنية في التصحيح الذي تمت إضافته في 2 أكتوبر. يمكنك تتبع إصدار تحديثات الحزمة في التوزيعات على صفحات Debian وUbuntu وRHEL وSUSE/openSUSE وFedora وArch وGentoo وALT Linux.
ترجع الثغرة الأمنية إلى التغيير الذي تم إجراؤه في أبريل 2021 كجزء من إصدار glibc 2.34. بسبب خطأ في كود تحليل السلسلة المحدد في متغير البيئة GLIBC_TUNABLES، تؤدي مجموعة غير صحيحة من المعلمات في هذا المتغير إلى كتابة القيمة المحللة خارج المخزن المؤقت المخصص. تتجلى المشكلة عندما يتم تحديد المعلمات في النموذج مع تعيين مزدوج "name=name=val" بدلاً من تسلسل "name=val" القياسي. في هذه الحالة، تتم معالجة التعيين مرتين، أولاً باسم "name=name=val" ثم باسم "name=val". تنتج هذه المعالجة المزدوجة النتيجة "name=name=val:name=val" وهي أكبر من حجم المخزن المؤقت Tunestr.
لقد قام الباحثون بإعداد برمجية إكسبلويت مستقرة تسمح لك بالحصول على حقوق الجذر عند استخدامها مع أي برنامج تقريبًا يحمل علامة الجذر suid. الاستثناءات هي الأداة المساعدة sudo (التي تغير قيمة ELF RUNPATH)، والأداة المساعدة chage وpasswd في Fedora (المحمية بقواعد SELinux المنفصلة)، والأداة المساعدة snap-confine في Ubuntu (المحمية بقواعد AppArmor المنفصلة). طريقة الاستغلال المقترحة أيضًا لا تعمل في RHEL 8 وRHEL 9، على الرغم من أن هذه الفروع معرضة لنقاط الضعف (يتطلب الهجوم إنشاء استغلال آخر). سيتم نشر كود الاستغلال لاحقًا بعد إصلاح الثغرة الأمنية في كل مكان. يمكنك التحقق من مدى تأثر نظامك بالثغرة الأمنية باستخدام الأمر التالي، والذي سيتعطل في حالة وجود مشكلة: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
بشكل منفصل، تمت الإشارة إلى القضاء على نقطتي ضعف أخريين في Glibc:
- CVE-2023-4806 – الوصول إلى الذاكرة بعد الاستخدام مجانًا في وظيفة getaddrinfo()، والذي يحدث عندما يقوم مكون NSS الإضافي بتنفيذ عمليات رد الاتصال "_gethostbyname2_r" و"_getcanonname_r" فقط، ولكنه لا يدعم " _gethostbyname3_r". لاستغلال الثغرة الأمنية، يجب على خادم DNS إرجاع عدد كبير من عناوين IPv6 وIPv4 للمضيف المطلوب، مما سيؤدي إلى تعطل العملية التي تسمى وظيفة getaddrinfo لعائلة AF_INET6 عندما تكون علامات AI_CANONNAME وAI_ALL وAI_V4MAPPED تعيين.
- CVE-2023-5156 – يحدث تسرب للذاكرة عند استدعاء وظيفة getaddrinfo لعائلة عناوين AF_INET6 مع مجموعة إشارات AI_CANONNAME وAI_ALL وAI_V4MAPPED.
المصدر: opennet.ru
