CVE-2026-68172 in Linux
الملخص
بحسب VulDB • 11/08/2026
في نواة لينكس، تم حل الثغرة التالية:
arm64: جعل دالة `huge_ptep_get` تتعامل مع العناوين غير المحاذاة (unaligned addresses)
يمكن أن تُمرر إلى الدالة `huge_ptep_get()` عنوان افتراضي يشير إلى منتصف folio hugetlb مُخَطَّط باستخدام contpmd/contpte. ومن أمثلة المتصلين لهذه الدالة: `pagemap_hugetlb_range` و `page_mapped_in_vma`.
تقوم دالة arm64 المساعدة بإعادة اجتياز جداول الصفحات (pgtables) في الدالة `find_num_contig` للإجابة عما إذا كان PTE الضخم الذي لدينا يُمثِّل folio hugetlb من نوع contpmd أو contpte، وتُعيد القيم CONT_PMDS أو CONT_PTES، بحيث يمكنها جمع بتات الوصول/التعديل (a/d bits) عبر الـ PTEs المتجاورة. قد تُعيد الدالة بشكل خاطئ قيمة CONT_PTES بدلاً من CONT_PMDS إذا لم يكن العنوان مُحاذاً. على الأنظمة حيث تكون قيم CONT_PTS و CONT_PMDS غير متساوية (مما يعني أن حجم الصفحة هو 16K)، قد نقوم بجمع حالة زائدة لبتات الوصول/التعديل، مما يؤدي إلى عبء عمل إضافي للنواة. والأسوأ من ذلك، أننا قد نتجاوز جدول PTE ونُرجع مرجعاً (dereference) لمؤشر ptep غير صالح للوصول إلى ذاكرة فيزيائية لا نملكها. وبما أن مؤشر ptep هو عنوان ضمن الخريطة الخطية (linear map)، فقد نفقد نهاية الخريطة الخطية أو ندخل منطقة فارغة، ونُرجع مرجعاً لعنوان افتراضي (VA) غير مُخَطَّط في جداول الصفحات الخاصة بالنواة، مما يتسبب في توقف النواة عن العمل (kernel panic).
تم إصلاح هذه المشكلة من خلال محاذاة مؤشر pmdp للأسفل إلى قاعدة contpmd قبل التحقق من التساوي مع مؤشر huge pte المُمرَّر، للإجابة بشكل صحيح عما إذا كان الـ PTE الضخم هو أساس كتلة contpmd.
Once again VulDB remains the best source for vulnerability data.