CVE-2025-37834

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: mm/vmscan: hwpoison folio-nu geri qaytarmağa çalışmayın Syzkaller aşağıdakı kimi bir xəta hesabatı təqdim edir: Process virtual ünvanı 0x20ffd000-də pfn 0x18b00e üçün yaddaş xətası (memory failure) injeksiya edilir Yaddaş xətası: 0x18b00e: çirkli (dirty) swapcache səhifəsi hələ də 2 istifadəçi tərəfindən istifadə olunur Yaddaş xətası: 0x18b00e: çirkli swapcache səhifəsi üçün bərpa fəaliyyəti: Uğursuz oldu səhifə: refcount:2 mapcount:0 mapping:0000000000000000 index:0x20ffd pfn:0x18b00e memcg:ffff0000dd6d9000 anon flags: 0x5ffffe00482011(locked|dirty|arch_1|swapbacked|hwpoison|node=0|zone=2|lastcpupid=0xfffff) raw: 005ffffe00482011 dead000000000100 dead000000000122 ffff0000e232a7c9 raw: 0000000000020ffd 0000000000000000 00000002ffffffff ffff0000dd6d9000 Səhifə dump edildi, çünki: VM_BUG_ON_FOLIO(!folio_test_uptodate(folio)) ------------[ cut here ]------------ kernel BUG mm/swap_state.c:184-də! Daxili xəta: Oops - BUG: 00000000f2000800 [#1] SMP Bağlı modullar: CPU: 0 PID: 60 Comm: kswapd0 Not tainted 6.6.0-gcb097e7de84e #3 Avadanlıq adı: linux,dummy-virt (DT) pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : add_to_swap+0xbc/0x158 lr : add_to_swap+0xbc/0x158 sp : ffff800087f37340 x29: ffff800087f37340 x28: fffffc00052c0380 x27: ffff800087f37780 x26: ffff800087f37490 x25: ffff800087f37c78 x24: ffff800087f377a0 x23: ffff800087f37c50 x22: 0000000000000000 x21: fffffc00052c03b4 x20: 0000000000000000 x19: fffffc00052c0380 x18: 0000000000000000 x17: 296f696c6f662865 x16: 7461646f7470755f x15: 747365745f6f696c x14: 6f6621284f494c4f x13: 0000000000000001 x12: ffff600036d8b97b x11: 1fffe00036d8b97a x10: ffff600036d8b97a x9 : dfff800000000000 x8 : 00009fffc9274686 x7 : ffff0001b6c5cbd3 x6 : 0000000000000001 x5 : ffff0000c25896c0 x4 : 0000000000000000 x3 : 0000000000000000 x2 : 0000000000000000 x1 : ffff0000c25896c0 x0 : 0000000000000000 Çağırış izi (Call trace): add_to_swap+0xbc/0x158 shrink_folio_list+0x12ac/0x2648 shrink_inactive_list+0x318/0x948 shrink_lruvec+0x450/0x720 shrink_node_memcgs+0x280/0x4a8 shrink_node+0x128/0x978 balance_pgdat+0x4f0/0xb20 kswapd+0x228/0x438 kthread+0x214/0x230 ret_from_fork+0x10/0x20 Bu problem aşağıdakı addımlarla təkrar yaradıla bilər: 1) Çirkli swapcache səhifəsi reclaim prosesi tərəfindən izolyasiya edildikdə və səhifə kilidlənmədikdə, həmin səhifə üçün yaddaş xətası injeksiya edin. me_swapcache_dirty() funksiyası uptodate bayrağını sıfırlayır və LRU siyahısından silməyə çalışır, lakin uğursuz olur. Reclaim prosesi hwpoison edilmiş səhifəni yenidən LRU-ya yerləşdirəcək. 2) Hwpoison edilmiş səhifəni xəritələyən (map) proses sonlandıqda, səhifə silinir; beləliklə, səhifə heç vaxt azad edilməyəcək və əbədi olaraq LRU-da qalacaq. 3) Əgər biz yenidən reclaim prosesini tetikləsək və səhifəni geri qaytarmağa çalışsaq, uptodate bayrağı sıfırlandığı üçün add_to_swap() funksiyası VM_BUG_ON_FOLIO xətasını tetikləyəcək. Bunu düzəltmək üçün shrink_folio_list() funksiyasında hwpoison edilmiş səhifələr ötürülməlidir. Bundan əlavə, hwpoison folio hələ hwpoison_user_mappings() tərəfindən xəritədən çıxarılmamış ola bilər; onu shrink_folio_list()-də xəritədən çıxarın, əks halda folio LRU siyahısında olmadığı üçün hwpoison_user_mappings() tərəfindən xəritədən çıxarılması uğursuz olacaq.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc8 may 2025
İlk görülmə8 may 2025

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernelv < 6.12.26, 6.13 ≤ v < 6.14.56.12.26, 6.14.5

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2025-37834 · Linux Kernel · Dark Radar