CVE-2026-80719 in Linuxالمعلومات

الملخص

بحسب VulDB • 28/08/2026

في نواة لينكس، تم حل الثغرة التالية:

mm: mglru: إصلاح التحديثات القديمة (stale) للحزم بعد إعادة الأبوة لـ memcg

يعمل جامع جداول الصفحات في mglru على تجميع فروق أحجام كل جيل (per-generation size deltas) ضمن `walk->nr_pages` أثناء التنقل عبر جداول الصفحات دون الاحتفاظ بقفل lruvec. تقوم الدالة `reset_batch_size()` لاحقاً بدمج هذه الفروق داخل `walk->lruvec` تحت قفل lruvec.

يمكن أن يعمل جامع جداول الصفحات بشكل متزامن مع مسار إعادة الأبوة لـ memcg على النحو التالي:

CPU0 CPU1 ==== ====

walk_mm --> walk_page_range --> update_batch_size --> walk->nr_pages += delta

mem_cgroup_css_offline --> memcg_reparent_objcgs --> lock lruvec lru_gen_reparent_memcg --> reparent child folios to parent unlock lruvec

lock lruvec reset_batch_size --> child lrugen->nr_pages += delta

سيؤدي هذا إلى تشغيل التحذير التالي في `lru_gen_exit_memcg()`:

VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0, sizeof(lruvec->lrugen.nr_pages)));

والأثر المرئي للمستخدم الناتج عن انخفاض قيمة nr_pages بشكل مفرط في MGLRU هو حدوث نفاد ذاكرة (OOM) مبكر، لأن MGLRU لا تحاول استرداد الذاكرة عندما تصل `nr_pages` إلى الصفر، بينما توجد صفحات أخرى.

لإصلاح ذلك، اجعل دالة `reset_batch_size()` تتحقق من علامة CSS_DYING تحت RCU قبل تفريغ الحزمة المعلقة (pending batch). تحافظ memcg غير المتوفية على استقرار lruvec الأصلي ضد الإغلاق المؤجل بـ RCU؛ بينما تعيد memcg المتوفاة توجيه الفروق إلى السلف الأول غير المتوفي.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

26/08/2026

إفشاء

28/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-396646

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!