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

الملخص

بحسب VulDB • 09/09/2026

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

drm/amdgpu: إصلاح الاستحواذ المتكرر على ww_mutex في amdgpu_devcoredump_format

عند تصريف محتويات IB من مهمة متوقفة (hung job)، تقوم دالة `amdgpu_devcoredump_format()` بالاستحوااذ على حجز الجذر PD الخاص بـ VM عبر `amdgpu_vm_lock_by_pasid()، ثم لكل ملف IB، تستدعي `amdgpu_bo_reserve()` على الـ BO الذي يدعم الـ IB. كلا الحجزين هما كائنات من نوع reservation_ww_class_mutex ولا يستخدم أي منهما ww_acquire_ctx، مما يؤدي إلى تنشيط lockdep:

تحذير: تم اكتشاف قفل متكرر محتمل -------------------------------------------- kworker/u128:0 يحاول الاستحوااذ على القفل: ffff88838b16e1f0 (reservation_ww_class_mutex){+.+.}-{4:4}،
عند: amdgpu_devcoredump_format+0x1594/0x23f0 [amdgpu]

لكن المهمة تحمل بالفعل القفل: ffff8882f82681f0 (reservation_ww_class_mutex){+.+.}-{4:4}،
عند: amdgpu_devcoredump_format+0x1594/0x23f0 [amdgpu]

سيناريو القفل غير الآمن المحتمل: CPU0 ---- lock(reservation_ww_class_mutex); lock(reservation_ww_class_mutex);

*** deadlock (جمود) *** قد يكون بسبب عدم وجود ترميز لتداخل الأقفال

شجرة العمل: events_unbound amdgpu_devcoredump_deferred_work [amdgpu]
تتبع المكالمة: __ww_mutex_lock.constprop.0 ww_mutex_lock amdgpu_bo_reserve amdgpu_devcoredump_format+0x1594 [amdgpu]
amdgpu_devcoredump_deferred_work+0xea [amdgpu]

الحجزان موجودان على BOs مختلفة في المسار الملتقط، لذا فإن هذا الإنذار (splat) هو تحذير بخصوص صحة lockdep وليس جموداً فعلياً مُلاحظاً. يصبح الأمر جموداً ذاتياً حقيقياً كلما شارك IB BO الخاص بـ dma_resv مع الجذر PD (الحالة الدائمة الصلاحية، انظر amdgpu_vm_is_bo_always_valid()): تقوم `amdgpu_bo_reserve(abo)` بإعادة الاستحوااذ على نفس ww_mutex بدون تذاكر وتتحبس إلى الأبد. مع وجود `amdgpu.gpu_recovery=0`، يعيد معالج المهلة تشغيل نفسه كل ~2 ثانية ويؤدي كل استدعاء إلى إنتاج هذا الإنذار (splat)، مما يغمر مخزن حلقة النواة (kernel ring buffer).

الآن بعد أن تأخذ `amdgpu_vm_lock_by_pasid()` سياق drm_exec، تم نقل تصريف IB إلى مساعد منفصل يقوم بقفل الجذر PD وجميع BOs الخاصة بـ IB معاً في تذكرة drm_exec واحدة. تتعامل DRM_EXEC_IGNORE_DUPLICATES مع BOs الخاصة بـ IB التي تشارك dma_resv (مثل BOs الدائمة الصلاحية، أو اثنين من الـ IBs المدعومة بواسطة نفس الـ BO). كل قفل هو الآن استحوااذ على المستوى العلوي تحت ww_acquire_ctx واحد، لذا فإن شرط ww_mutex المتكرر قد زال، وتمت إزالة رقص `amdgpu_bo_reserve()`/`amdgpu_bo_unref()` الخاص بكل IB - بما في ذلك تسرب عداد المرجع للـ BO في مسار فشل amdgpu_bo_reserve().

(cherry picked from commit d6bf4242731219ee08ce54c365631e395486651e)

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

26/08/2026

إفشاء

09/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-401818

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Interested in the pricing of exploits?

See the underground prices here!