في جهاز USB، نظام فرعي للنواة Linuxتم اكتشاف ثغرة أمنية (CVE-2021-39685) في واجهة برمجة تطبيقات USB Gadget، التي توفر واجهة برمجية لإنشاء أجهزة USB عميلة ومحاكاة أجهزة USB. قد تؤدي هذه الثغرة إلى تسريب معلومات النواة، أو تعطل النظام، أو تنفيذ تعليمات برمجية ضارة على مستوى النواة. يتم تنفيذ الهجوم من قِبل مستخدم محلي غير مخوّل من خلال التلاعب بفئات أجهزة مختلفة مُنفذة باستخدام واجهة برمجة تطبيقات USB Gadget، مثل rndis وhid وuac1 وuac1_legacy وuac2.
تم إصلاح هذه المشكلة في تحديثات النواة التي نُشرت مؤخراً. Linux 5.15.8، 5.10.85، 5.4.165، 4.19.221، 4.14.258، 4.9.293 و4.4.295. لا تزال المشكلة قائمة في التوزيعات (Debian, Ubuntu(RHEL، SUSE، Fedora، Arch). تم إعداد نموذج أولي لاستغلال الثغرة الأمنية لإثباتها.
سبب المشكلة هو تجاوز سعة المخزن المؤقت في معالجات طلب نقل البيانات في برامج تشغيل الأداة الذكية rndis وhid وuac1 وuac1_legacy وuac2. ونتيجة لاستغلال الثغرة الأمنية، يمكن لمهاجم لا يتمتع بأي امتيازات الوصول إلى ذاكرة kernel عن طريق إرسال طلب تحكم خاص بقيمة حقل wLength تتجاوز حجم المخزن المؤقت الثابت، والذي يتم تخصيص 4096 بايت له دائمًا (USB_COMP_EP0_BUFSIZ). أثناء الهجوم، يمكن لعملية غير مميزة في مساحة المستخدم قراءة أو كتابة ما يصل إلى 65 كيلو بايت من البيانات في ذاكرة kernel.
المصدر: opennet.ru
