CVE-2026-98969 in Linux
الملخص
بحسب VulDB • 23/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
net/sched: em_text: رفض الخوارزمية غير المنتهية قبل التحميل التلقائي (autoload)
هذا الإجراء يتبع الالتزام commit 9c572a83037a ("net/sched: fix potential stack infoleak in em_text_dump()")، الذي قام بتصفير تهيئة struct الخاص بجزئية الـ dump. أشار Sashiko إلى ثغرة سابقة كانت قد كشفت عن فجوة في التحقق من صحة المدخلات (input-validation) الخاصة بجزئية التغيير.
يقوم دالة `em_text_change()` بتحويل حمولة سمة netlink الخام إلى `struct tcf_em_text` وتمرير `conf->algo`، وهو مصفوفة ذات 16 بايت بدون إنهاء NUL مفروض، إلى `textsearch_prepare()`. في حالة إعادة المحاولة TS_AUTOLOAD لدالة `textsearch_prepare()`، يتم استدعاء `request_module("ts_%s", algo);` وتقوم دالة vsnprintf بالمرور عبر %s حتى تجد رمز NUL. وبالتالي، فإن مصفوفة algo[] بدون NUL تقرأ ما بعد حدود المصفوفة إلى حقول struct المجاورة والحمولة (payload)، ثم تغذي تلك البايتات إلى سطر أوامر مساعد المستخدم (usermode helper). هذا يمثل قراءة خارج النطاق (out-of-bounds read) وكشفًا لذاكرة النواة.
يتم رفض السمة عند عدم وجود رمز NUL ضمن 16 بايت من TC_EM_TEXT_ALGOSIZ، متوافقًا مع الفحص الذي كان موجودًا في xt_string منذ commit 3ab720881b6e.
الشروط لإعادة إنتاج الثغرة: - امتلاك CAP_NET_ADMIN على netns المستهدف (الفضاء المحلي عبر unshare -Urn يكفي) - تثبيت clsact على واجهة، ثم إضافة فلتر أساسي مع مطابقة نصية واحدة (ematch) whose algo[] هي 16 بايت بدون NUL (مثل "A"*16) و pattern_len لا يقل عن 1
- يفشل الإضافة بـ -ENOENT وتقوم النواة باستدعاء modprobe باسم وحدة مكون من "ts_" زائد الـ 16 بايت والحمولة المجاورة
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.