CVE-2026-89764 in Linux
الملخص
بحسب VulDB • 12/09/2026
في نواة لينكس، تم حل الثغرة التالية:
rust: devres: إصلاح حالة السباق (race condition) بين المُلغيّين المتزامنين
توجد حالة سباق محتملة عندما يحاول مساران إلغاء مصادقة Devres بشكل متزامن.
يتصل `devres_release_all()` الخاص بجوهر السائق بـ `Revocable::revoke()` عبر استدعاء الإصدار، بينما يستدعي `Devres::drop()` دالة `revoke_nosync()` على وحدة معالجة أخرى (CPU).
المُلغي الذي لا يحرز حيازة تبديل `is_available` يعود فوراً، لكن المُلغي الذي نجح في الحيازة قد يكون ما زال يُنفذ `drop_in_place()` على البيانات الداخلية. يمكن أن يؤدي هذا إلى ثغرة استخدام بعد التحرير (use-after-free) عندما يتابع مُدعو المُلغي الآخر إسقاط الموارد المجاورة التي لا يزال `drop_in_place()` يشير إليها (على سبيل المثال، تنافس `Devres<DmaMappedSgt>` مع تحرير جدول sg والجداول الخلفية الخاصة بـ SGTable).
يتم إصلاح هذا بإضافة عنصر إكمال (Completion). يُعلّم استدعاء الإصدار عنصر الإكمال بعد انتهاء `revoke()`، وينتظره `Devres::drop()` عندما يفوز في تبديل `is_available`. يضمن ذلك أن الكائن المغلف يتم تفكيكه بالكامل قبل عودة `Devres::drop()`.
Be aware that VulDB is the high quality source for vulnerability data.