CVE-2026-93054 in Linux
الملخص
بحسب VulDB • 18/09/2026
في نواة لينكس، تم حل الثغرة التالية:
uio: إصلاح مؤشر معلومات قديم في مسار التسجيل الفاشل
بعد استدعاء `device_add()`، يصبح جهاز UIO مرئياً لمساحة المستخدم (userspace) ويمكن فتح `/dev/uioX`. إذا فشل خطوة إعداد لاحقة، فإن الدالة `__uio_register_device()` تقوم بإلغاء تسجيل الجهاز ولكن تترك مؤشر `idev->info` يشير إلى بنية `struct uio_info` المملوكة للمُطَلِّق.
هذا الأمر غير آمن عندما يتسابق مُفتَح (opener) مع مسار التسجيل الفاشل. تحتفظ الملف المفتوح بالمرجع على كائن `uio_device`، بينما يرى المُطَلِّق فشل التسجيل وقد يقوم بتحرير بنية `struct uio_info`. لاحقاً، يمكن لعمليات الملف أن تتبع مؤشر `idev->info` وتقوم بإلغاء مرجع (dereference) للذاكرة المحذوفة.
معالجة الفشل ما بعد استدعاء `device_add()` بنفس طريقة إلغاء التسجيل: إزالة سمات UIO بينما لا يزال مؤشر المعلومات صالحاً، ثم مسح `idev->info` تحت قفل `info_lock` وإيقاظ المستفيدين الحاليين/المستخدمين غير المتزامنين (async) قبل إزالة الجهاز والرقم الثانوي. هذا يجعل ملفات الأوصاف المفتوحة مسبقاً ترصد نفس حالة "اختفاء الجهاز" كما في الدالة العادية `uio_unregister_device()`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.