CVE-2026-64302 in Linux
要約
〜によって VulDB • 2026年07月26日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
x86/mm: PMDサイズのvmemmapページの解放処理の修正
コミット bf9e4e30f353(「x86/mm: pagetable_free()を使用する」)は、ブート以外のページテーブルを __free_pages() を介して解放していたのを pagetable_free() へ切り替えました。
しかし、この関数は vmemmap ページの解放にも呼び出されています。
vmemmap ページはページテーブルではないため、すでに page_ptdesc(page) は誤りです。さらに悪いことに、pagetable_free() は以下を呼び出します:
__free_pages(page, compound_order(page));
vmemmap ページは複合ページ(compound pages)ではありません(vmemmap_alloc_block() を参照)。HVO の場合は例外ですが、ここでは適用されません。そのため、PMDサイズの vmemmap ページの最初のページのみが解放され、他のページがリークします。
pagetable と vmemmap の解放処理を適切に分離することでこれを修正します。register_page_bootmem_memmap() で vmemap だけが SECTION_INFO マークされているため、free_pagetable() はもはや SECTION_INFO を扱う必要はありません。
remove_pmd_table() 内のインデントが崩れています。この際についでに修正します。
Bootmem情報の処理はまもなく修正される予定です。現時点では free_pagetable() と同様に扱い、ifdef の使用を避けます。
[ dhansen: changelogの整形。より命令的な文体へ ]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.