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

الملخص

بحسب VulDB • 16/09/2026

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

drm/pagemap: تصحيح مسار التراجع لتخصيص folio وتصحيح استخدام بعد الإلغاء (use-after-put)

كانت الدالة drm_pagemap_migrate_populate_ram_pfn() تعاني من مشكلتين عند ملء عناوين الصفحات الفيزيائية للذاكرة العشوائية (RAM PFNs) باستخدامfolios ذات ترتيب أعلى (higher-order):

1. لم تكن استدعاءات vma_alloc_folio()/folio_alloc() ذات الترتيب الأعلى تمرر العلم __GFP_NOWARN، مما كان يؤدي إلى إغراق سجل النواة برسائل خطأ عند فشل تخصيص THP تحت ضغط الذاكرة، كما لم يكن هناك مسار تراجع على الرغم من وجود تعليق TODO يشير إلى ضرورة وجوده. تمت إضافة __GFP_NOWARN إلى عملية الترتيب الأعلى، وفي حال الفشل، يتم التراجع إلى عمليات تخصيص بترتيب 0 (order-0) للنطاق الكامل الذي كان يغطيه التخصيص ذو الترتيب الأعلى الفاشل، مع ترك MIGRATE_PFN_COMPOUND غير مضبوط لتلك عناوين الصفحات الفيزيائية.

2. في مسار الخطأ الخاص بـ free_pages، تم حساب الترتيب (order) عبر folio_order(page_folio(page)) *بعد* أن كانت put_page(page) قد خفضت بالفعل عدد المراجع (reference)، مما أدى إلى حدوث حالة استخدام بعد التحرير/الإلغاء (use-after-free/put) عندما كان ذلك هو المرجع الأخير على الصفحة. تمت إعادة حساب الترتيب قبل إطلاق الصفحة.

يتطلب إدخال مسار التراجع في النقطة 1 أيضًا بناء مصفوفة الصفحات المصدر المُمررة إلى ->copy_to_ram() بشكل مختلف. يقوم كل من المتصلين (callers) فقط بملء الإدخال عند رأس كل folio مصدر، معتمدين على دالة النسخ لاستنتاج باقي الـ folio من الترتيب المسجل في drm_pagemap_addr المطابق. بمجرد أن يتم تخفيض الوجهة إلىfolios ذات ترتيب 0، تصبح إدخالات drm_pagemap_addr خاصة بكل صفحة؛ لذا يلزم وجود صفحة مصدر لكل واحدة منها؛ وتركها فارغة (NULL) يجعل دالة النسخ تتوقف بعد الصفحة الأولى ولا يتم نسخ باقي النطاق أبدًا.

يتم تقسيم الـ folio المصدر لاحقًا فقط بواسطة migrate_vma_pages() / migrate_device_pages()، لذلك لا يمكن استخدام ترتيبه للكشف عن التخفيض - بل يجب اختبار الوجهة بحثًا عن MIGRATE_PFN_COMPOUND بدلاً من ذلك. تم فصل عملية ملء المصفوفة إلى drm_pagemap_migrate_populate_src_pages() واستخدامها من كلٍ من drm_pagemap_evict_to_ram() و __drm_pagemap_migrate_to_ram().

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

11/09/2026

إفشاء

16/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-405623

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!