CVE-2026-64302
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/07/2026
Last modified:
25/07/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
x86/mm: Fix freeing of PMD-sized vmemmap pages<br />
<br />
Commit bf9e4e30f353 ("x86/mm: use pagetable_free()"), switched from<br />
freeing non-boot page tables through __free_pages() to<br />
pagetable_free().<br />
<br />
However, the function is also called to free vmemmap pages.<br />
<br />
Given that vmemmap pages are not page tables, already the page_ptdesc(page)<br />
is wrong. But worse, pagetable_free() calls:<br />
<br />
__free_pages(page, compound_order(page));<br />
<br />
Since vmemmap pages are not compound pages (see vmemmap_alloc_block())<br />
-- except for HVO, which doesn&#39;t apply here -- only first page of a<br />
PMD-sized vmemmap page is freed, leaking the other ones.<br />
<br />
Fix it by properly decoupling pagetable and vmemmap freeing.<br />
free_pagetable() no longer has to mess with SECTION_INFO, as only the<br />
vmemmap is marked like that in register_page_bootmem_memmap().<br />
<br />
The indentation in remove_pmd_table() is messed up. Fix that while<br />
touching it.<br />
<br />
Bootmem info handling will soon be fixed up. For now, handle it<br />
similar to free_pagetable(), just avoiding the ifdef.<br />
<br />
[ dhansen: changelog munging. More imperative voice ]



