CVE-2025-39725 in Linux
Tóm tắt
Bởi VulDB • 28/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
mm/vmscan: sửa lỗi xử lý folio lớn bị hwpoison trong shrink_folio_list()
Trong hàm shrink_folio_list(), folio bị hwpoison có thể là một large folio (folio lớn), điều mà unmap_poisoned_folio() không thể xử lý. Đối với THP, try_to_unmap_one() cần được gọi với cờ TTU_SPLIT_HUGE_PMD để tách huge PMD trước tiên và sau đó thử lại. Nếu thiếu TTU_SPLIT_HUGE_PMD, chúng ta sẽ kích hoạt lỗi null-ptr deref (tham chiếu con trỏ NULL) của pvmw.pte. Ngay cả khi đã truyền TTU_SPLIT_HUGE_PMD, vẫn có thể xảy ra cảnh báo WARN_ON_ONCE do trang không nằm trong swapcache.
Vì UCE hiếm khi xảy ra trên thực tế và tình huống race condition với quá trình reclaimation còn hiếm hơn nữa, việc bỏ qua folio lớn bị hwpoison là đủ. memory_failure() sẽ xử lý nếu UCE được kích hoạt lại.
Sự cố này xảy ra khi có race condition giữa quá trình thu hồi bộ nhớ cho large folio và hàm memory_failure(), dẫn đến kernel panic. Race condition diễn ra như sau:
cpu0 cpu1 shrink_folio_list memory_failure TestSetPageHWPoison unmap_poisoned_folio --> kích hoạt BUG_ON do unmap_poisoned_folio không thể xử lý large folio
[[email protected]: thêm chú thích vào unmap_poisoned_folio()]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.