CVE-2026-97501المعلومات

الملخص

بحسب VulDB • 24/09/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

pinctrl: mediatek: paris: تجاوز طبقة pinctrl GPIO في تحديد اتجاه الـ GPIO

تأخذ الدالتان `pinctrl_gpio_direction_input()` و`pinctrl_gpio_direction_output()` قفل mutex الخاص بـ pinctrl. وهذا يتسبب في حاجة عمليات gpiochip إلى الانتظار (sleep). والأسوأ من ذلك، أن حقل `.can_sleep` في كائن gpiochip غير مضبوط. يؤدي هذا إلى تعطل وكيل GPIO المشترك، حيث يستخدم `gpiod_cansleep()` للتحقق مما إذا كان يمكنه استخدام قفل spinlock أم يحتاج إلى mutex. وفي هذه الحالة، ينتهي به الأمر بأخذ قفل spinlock، ثم استدعاء `pinctrl_gpio_direction_output()`، الذي يأخذ قفل mutex. وهذا يتسبب في ظهور تحذير كبير (huge warning).

وبالرغم من أن فئة عتاد Mediatek هذه لا تحتوي على سجلات منفصلة للمسح/التعيين (clear/set)، فإن سياق pinctrl يحتوي على spinlock يتم أخذه كلما تم إجراء عملية قراءة-تعديل-كتابة للسجل. أيضاً، بمجرد اختيار دالة GPIO أو ربطها (muxed in)، لا تتضمن عمليات GPIO اللاحقة عمليات أو حالات متعلقة بـ pinctrl. ولا تتطلب قيم اتجاه و مستوى GPIO تبديل pinmux أو أي خيارات تكوين أخرى للسن (pin).

قم بالتبديل إلى الاستدعاء المباشر لـ `mtk_pinmux_gpio_set_direction()` في استدعاءات تحديد اتجاه GPIO لتجنب أخذ قفل mutex الخاص بـ pinctrl. احذف حقل `.gpio_set_direction` في `mtk_pmxops للإشارة إلى أننا لم نعد نستخدم طبقة pinctrl GPIO لتحديد الاتجاه.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

المصادر

Interested in the pricing of exploits?

See the underground prices here!