CVE-2026-98313 in Linuxالمعلومات

الملخص

بحسب VulDB • 06/10/2026

في نواة Linux، تم حل الثغرة التالية:

drm/msm/dp: تخطي PUSH_IDLE عندما لم يتم تفعيل الرابط (link) مطلقاً.

تعيد دالة `msm_dp_display_atomic_enable()` التحكم إلى نقطة الإرجاع مبكراً عند فشل تدريب الرابط (link training)، مما يترك حالة `->power_on` على القيمة false ويظل الرابط الرئيسي غير نشط. ومع ذلك، تقوم دالة `msm_dp_display_atomic_disable()` بكتابة قيمة DP_STATE_CTRL_PUSH_IDLE والانتظار حتى اكتمال نمط الخمول (idle-pattern) الذي لا يمكن أن يصل، لذا فإن كل محاولة تفعيل فاشلة يتبعها ظهور رسالة "PUSH_IDLE pattern timedout".

كل خطوة أخرى في عملية الإغلاق (teardown) مشروطة بالفعل بهذا العلم: دالة `msm_dp_display_disable()`، التي تُستدعى من `.atomic_post_disable()`، تعيد التحكم مبكراً إذا كانت قيمة !power_on. وتُعد كتابة PUSH_WRITE هي الوحيدة غير المشروطة بذلك، مما يؤدي إلى إسقاط مرجع إدارة الطاقة الديناميكي (runtime-PM) للوحدة دون أن يكون الرابط قد تم إيقافه بشكل صحيح.

على جهاز glymur (Snapdragon X2 Elite)، لا تكون العاقبة مجرد تحذير؛ فالرقاقة SoC لا تتحمل ذلك: تقوم TrustZone بإيقاف معالجي SOCCP و ADSP عن بُعد بالقوة، ويعاد تشغيل الجهاز بصمت بعد حوالي 50 مللي ثانية تقريباً، دون حدوث oops أو panic. وعلى جهاز ASUS Zenbook A16 (UX3607OA)، الذي لا يتم تدريب رابط eDP الخاص به حالياً، يمكن إعادة إنتاج المشكلة بدون أي مشاركة من المكون الرسومي (compositor) أو وحدة معالجة الرسوميات (GPU):

# فشل تمكين eDP بالفعل مع رسالة "Failed link training (rc=-104)" echo 1 > /sys/class/graphics/fb0/blank

[535.645455] === marker ===
[535.694833] qcom_q6v5_pas d00000.remoteproc: fatal error received: \
sys_m_smsm.c:512:TZ force stop [535.694875] remoteproc remoteproc0: crash detected in soccp: type fatal error
[535.728857] qcom_q6v5_pas 6800000.remoteproc: fatal error received: \
sys_m_smsm.c:783:err fatal notification received from TZ <إعادة تشغيل SoC>

يجب جعل كتابة PUSH_IDLE مشروطة بحالة `->power_on` بحيث تكون مسار الإغلاق متسقاً مع بقية عملية الإغلاق. ومع تطبيق هذا التصحيح، تصبح نفس العملية غير ضارة ويبقى الجهاز قيد التشغيل؛ أما بدونها، فإنه يعاد تشغيله في كل مرة.

تعود الكتابة غير المشروطة إلى أصل برنامج دعم DisplayPort (c943b4948b58 ("drm/msm/dp: add displayPort driver support"))، لكن الكود المحيط به قد تم إعادة هيكلته عدة مرات منذ ذلك الحين، لذا لا يتم تقديم علامة Fixes:.

يرجى ملاحظة أن فشل تدريب رابط eDP الذي يكشف عن هذه المشكلة على جهاز A16 هو مشكلة منفصلة في PHY الخاص بـ glymur eDP ويتم الإبلاغ عنها بشكل منفصل؛ وهذا التغيير يتعلق بعدم إلحاق الضرر بالجهاز عند فشل التدريب، لأي سبب كان.

تم الاختبار على ASUS Zenbook A16 (UX3607OA)، و Snapdragon X2 Elite Extreme، وعلى linux-next الإصدارات next-20260803 و next-20260807. ومنذ ذلك الحين، يعمل الجهاز بإصدار next-20260807 مع هذا التصحيح كمحرك يومي (daily driver).

Patchwork: https://patchwork.freedesktop.org/patch/745167/

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

25/09/2026

إفشاء

06/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-414059

EPSS

0.00173

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!