{"id":28491,"date":"2026-09-25T00:31:33","date_gmt":"2026-09-24T16:31:33","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93227"},"modified":"2026-09-25T00:31:33","modified_gmt":"2026-09-24T16:31:33","slug":"cve-2026-93227","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93227","title":{"rendered":"CVE-2026-93227 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmm\/mm_init: deferred_"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mm\/mm_init: deferred_grow_zone(): fix out-of-range first_deferred_pfn<\/p>\n<p>With CONFIG_DEFERRED_STRUCT_PAGE_INIT enabled, deferred_grow_zone()<br \/>\ninitializes struct pages early in boot to satisfy an allocation.<\/p>\n<p>With a large CMA reservation in place, the ranges deferred_init_memmap()<br \/>\nfinds may not add up to the allocation it was asked for, and the function<br \/>\nends up initializing the memory map of the entire zone and still falls<br \/>\nshort.<\/p>\n<p>That is fine in itself: the function accounts for it and leaves the<br \/>\ncaller to decide whether it now has enough memory.<\/p>\n<p>However, the update of pgdat-&gt;first_deferred_pfn that tracks where<br \/>\nuninitialized memory map starts could overflow.<\/p>\n<p>If the node&#8217;s RAM end is not aligned on PAGES_PER_SECTION boundaries and<br \/>\nsome deferred struct pages were initialized, pgdat-&gt;first_deferred_pfn<br \/>\nwould point past the end of the node&#8217;s memory.<\/p>\n<p>deferred_init_memmap() later picks up from pgdat-&gt;first_deferred_pfn and<br \/>\nhits a BUG_ON(), because it expects a pfn within its node.<\/p>\n<p>For example, when running a kernel with CONFIG_DEFERRED_STRUCT_PAGE_INIT=y<br \/>\nand CONFIG_CMA=y using the following qemu command line<\/p>\n<p>  qemu-system-x86_64 -enable-kvm -m 8032M -kernel bzImage<br \/>\n      -append &#8220;nokaslr cma=4768M@0x100000000&#8221;<\/p>\n<p>the kernel panics:<\/p>\n<p>  kernel BUG at mm\/mm_init.c:2131!<br \/>\n  CPU: 3 UID: 0 PID: 36 Comm: pgdatinit0 Not tainted 7.2.0-rc6 #1<br \/>\n  RIP: 0010:deferred_init_memmap+0x1b8\/0x1c0<br \/>\n  RAX: 0000000000236000 R13: 0000000000238000<br \/>\n  Call Trace:<br \/>\n   kthread+0xdf\/0x120<br \/>\n   ret_from_fork+0x187\/0x250<\/p>\n<p>Make sure that the update of pgdta-&gt;first_deferred_pfn does not overflow<br \/>\nwhen the entire zone&#8217;s (and therefore node&#8217;s) memory map is initialized.<\/p>\n<p>[rppt: massaged the changelog]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>mm\/mm_init: deferred_grow_zone(): fix out-of-range first_deferred_pfn<\/p>\n<p>With CONFIG_DEFERRED_STRUCT_PAGE_INIT enabled, deferred_grow<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28491","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}