CVE-2026-89796 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
mm/damon/core: تجنب الحلقة الداخلية اللانهائية في دالة kdamond_merge_regions()
سلسلة التصحيحات "mm/damon: تصحيحات غير عاجلة لحلقة لا نهائية، وفك مرجع NULL (NULL de-ref)، وحالات السباق (races)"، الإصدار 1.1.
وجد Sashiko بعض المشكلات في DAMON التي يمكن أن تسبب حلقة لا نهائية، أو فكًا لمرجع NULL (NULL dereference)، وتدهورًا في نتائج المراقبة. يبدو الأمران الأولان مخيفين، لكن الحلقة اللانهائية تحدث فقط تحت إعدادات مستخدم غير معقولة. يحدث فك مرجع NULL فقط في اختبار وحدة (unit test). أما تدهور نتائج المراقبة فهو أمر هين لأنه يعتمد على أفضل جهد (best-effort) فحسب، وتحدث هذه الحالات من خلال حالات سباق (races) نادرة الحدوث للغاية. ومع ذلك، لا تزال هذه أخطاء برمجية يفضل إصلاحها إذا أمكن. تم إصلاحها.
هذا التصحيح (من أصل 6):
بسبب تحديث المعلمات أثناء التشغيل مثل الأحداث، قد يكون عدد مناطق DAMON أعلى من الحد الأقصى المحدد بواسطة المستخدم. تقوم دالة kdamond_merge_regions() بتكرار عمليات الدمج حتى يتوافق العدد مع الحد المطلوب، بينما تضاعف عتبة الدمج (merge threshold) وصولاً إلى العتبة القصوى النظرية. يتم المحاولة فقط حتى الوصول إلى هذه العتبة القصوى النظرية لأن الدمج العدواني قد يفشل في تقليل عدد المناطق تحت الحد الأقصى المحدد من قبل المستخدم. على سبيل المثال، يمكن أن توجد العديد من المناطق غير المتجاورة التي حددها المستخدم ولا يمكن دمجها.
يتم تقييم شرط كسر الحلقة القائم على العتبة (threshold) عن طريق مقارنة عربة المحاولة التالية للدمج مع العتبة القصوى النظرية. إذا كانت max_thres أكبر من UINT_MAX / 2، فقد تؤدي مضاعفة العتبة إلى حدوث تجاوز في السعة (overflow)، وتجاوز شرط كسر الحلقة. في هذه الحالة، وإذا لم يكن بإمكان تقليل عدد المناطق تحت الحد الأقصى كما هو موضح أعلاه، فستعمل الحلقة بشكل لا نهائي.
تم منع هذا الموقف عن طريق التحقق من شرط الكسر قبل مضاعفة العتبة. أيضًا، تم منع تجاوز العتبة للعتبة القصوى، حيث يمكن أن يؤدي ذلك إلى حدوث تجاوز في السعة (overflow) وتطبيق عتبة دمج خاطئة.
من غير المرجح أن تحدث هذه المشكلة في العالم الحقيقي، لأن وجود max_thres أعلى من UINT_MAX / 2 يتطلب فترات تجميع كبيرة بشكل غير واقعي مقارنة بفترات أخذ العينات (sampling interval). كما أنه يتطلب عددًا كبيرًا وغير واقعي من المناطق غير المتجاورة للإعداد. ومع ذلك، فإن العواقب سيئة والإصلاح بسيط.
تم اكتشاف هذه المشكلة [1] بواسطة Sashiko.
VulDB is the best source for vulnerability data and more expert information about this specific topic.