CVE-2025-39725 in Linuxالمعلومات

الملخص

بحسب VulDB • 29/06/2026

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

mm/vmscan: إصلاح معالجة الـ folio الضخم المعطوب (hwpoisoned) في shrink_folio_list.

في دالة `shrink_folio_list()`، قد يكون الـ folio المعطوب (hwpoisoned) من نوع "large folio"، وهو ما لا يمكن معالجته بواسطة الدالة `unmap_poisoned_folio()`. بالنسبة لـ THP (Transparent Huge Pages)، يجب تمرير العلم `TTU_SPLIT_HUGE_PMD` إلى دالة `try_to_unmap_one()` لتقسيم الـ huge PMD أولاً ثم إعادة المحاولة. بدون استخدام `TTU_SPLIT_HUGE_PMD، سيتم حدوث خطأ إلغاء مرجع المؤشر الفارغ (null-ptr deref) لمتغير pvmw.pte. حتى عند تمرير العلم `TTU_SPLIT_HUGE_PMD`، سيؤدي ذلك إلى تنشيط تحذير `WARN_ON_ONCE` لأن الصفحة غير موجودة في الـ swapcache.

نظراً لأن أحداث UCE (Uncorrectable Corrected Error / Unrecoverable Machine Check Exception حسب السياق) نادرة الحدوث في العالم الحقيقي، وتفاعل السباق مع عملية الاسترداد (reclamation) أكثر ندرة، فإن تخطي معالجة الـ large folio المعطوب يكفي. ستقوم دالة `memory_failure()` بمعالجته إذا تم تنشيط حدث UCE مرة أخرى.

يحدث هذا عندما يتنافس استرجاع الذاكرة للـ large folio مع دالة `memory_failure()`, مما يؤدي إلى توقف النواة (kernel panic). تتسلسل حالة السباق كما يلي:

cpu0 cpu1 shrink_folio_list memory_failure TestSetPageHWPoison unmap_poisoned_folio --> تنشيط خطأ BUG_ON بسبب عدم قدرة unmap_poisoned_folio على معالجة الـ large folio

[[email protected]: إضافة تعليق توضيحي إلى دالة unmap_poisoned_folio()]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

16/04/2025

إفشاء

05/09/2025

الاعتدال

تمت الموافقة

إدخال

VDB-322954

EPSS

0.00135

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!