CVE-2026-90013 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
التتبع (tracing): أخذ مرجع لـ `trace_array` عند فتح ملف الخيارات
لا تأخذ ملفات الخيارات المرجع الخاص بـ `trace_array` للخيارات التي تمثلها. قد يؤدي هذا إلى تعطل في النواة بسبب استخدام بعد التحرير (use-after-free) إذا تم فتح أحد هذه الملفات بواسطة مهمة واحدة، وقامت مهمة أخرى بإزالة المثيل الذي يخص الخيار. ونظراً لأنه لا يتم أخذ مرجع عند الفتح، فلن يمنع ذلك عملية الإزالة التي ستقوم بتحرير واصف الخيارات المستخدم.
بما أن الخيارات ديناميكية إلى حد ما في إنشائها أثناء بدء التشغيل، فإن كل ملف يمثل علماً (flag) في `trace_array`. يحتوي `trace_array` على مصفوفة من الفهارس لتمثيل هذه العلامات المخزنة في مصفوفة `trace_flags_index`. يتم استخدام عنوان عنصر مصفوفة الفهرس لتمريره إلى مؤشر `inode->i_private`. ثم يُقرأ هذا العنصر الذي يحمل الفهرس (والذي يمثل العلم)، وبعد ذلك يُستخدم الفهرسة لحساب واصف `trace_array` من مصفوفة `trace_flags_index` الخاصة به.
إحدى المشكلات هي أن عنصر الفهرس لا يمكن الإشارة إليه إلا بعد أخذ مرجع لـ `trace_array`. للتعامل مع هذا، تم إنشاء دالة مساعدة جديدة تسمى: `trace_array_options_get()` التي ستقوم بتكرار جميع `trace_arrays` الموجودة في قائمة `ftrace_trace_arrays` (تحت قفل `trace_types_lock`) ومقارنة العنوان الممرر لعنصر الفهرس مع مصفوفة كاملة من مصفوفة `trace_flags_index` الخاصة بـ `trace_array`. إذا تطابقت، يتم زيادة مرجع `trace_array` المقابل وإرجاع النتيجة.
If you want to get best quality of vulnerability data, you may have to visit VulDB.