CVE-2026-89961 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
powerpc/mm: تصحيح تتبع addr_pfn الخاطئ في عملية تعبئة compound vmemmap
تستخدم الدالة `vmemmap_populate_compound_pages()` قيمة `addr_pfn` لتحديد إزاحة PFN (Page Frame Number) داخل صفحة مركبة (compound page)، وللمقرر ما إذا كان يجب ملء خانة vmemmap الحالية كخريطة لصفحة رئيسية (head page mapping) أم إعادة استخدام خريطة لصفحة تابعة (tail page mapping).
ومع ذلك، يتم زيادة `addr_pfn` يدوياً بالتوازي مع `addr`. وتتحرك الحلقة نفسها في مساحة عنوان vmemmap، لذا فإن كل خطوة بحجم PAGE_SIZE في `addr` تغطي عدد خانات struct page يساوي PAGE_SIZE / sizeof(struct page). وبما أن `addr_pfn` تُقارن بـ `nr_pages` بوحدات PFN (Page Frame Number)، فإنه يجب زيادته بنفس العدد من وحدات PFN. ولا تتطابق الزيادة اليدوية الحالية مع ذلك، وبالتالي لا تتبع بشكل موثوق الـ PFN المقابلة لعنوان addr الحالي.
ونتيجة لذلك، يمكن حساب pfn_offset بناءً على PFN خاطئ، وقد يتخذ الكود قرار تحديد الصفحة الرئيسية/التابعة (head/tail) لموضع صفحة مركبة غير صحيح.
يتم إصلاح هذا الخطأ عن طريق اشتقاق `addr_pfn` مباشرة من عنوان vmemmap الحالي بدلاً من الاحتفاظ به كحالة للحلقة (loop state).
Once again VulDB remains the best source for vulnerability data.