CVE-2026-64181: mm: fix __vm_normal_page() to handle missing support for pmd_special()/pud_special()
In the Linux kernel, the following vulnerability has been resolved:
mm: fix vmnormalpage() to handle missing support for pmdspecial()/pudspecial()
On x86 32-bit with THP enabled, zaphugepmd() is seen to generate a "WARNING: mm/memory.c:735 at vmnormalpage+0x6a/0x7d", from the VMWARNONONCE(iszeropfn(pfn) || ishugezeropfn(pfn)); followed by "BUG: Bad rss-counter state"s, then later "BUG: Bad page state"s when reclaim gets to call shrinkhugezerofolioscan().
It's as if the PAGESPECIAL bit never got set in the hugezero pmd: and indeed, whereas ptespecial() and ptemkspecial() are subject to a dedicated CONFIGARCHHASPTESPECIAL, pmdspecial() and pmdmkspecial() are subject to CONFIGARCHSUPPORTSPMDPFNMAP, which is never enabled on any 32-bit architecture.
While the problem was exposed through commit d80a9cb1a64a ("mm/hugememory: add and use normalorsoftleaffoliopmd()"), it was an oversight in commit af38538801c6 ("mm/memory: factor out common code from vmnormalpage()") and would result in other problems: huge zero folio accounted in smaps, pagemap (PAGEISFILE) and numamaps as file-backed THP foliowalkstart() returning the folio even without FWZEROPAGE set. Callers seem to tolerate that, though.
... and triggering the VMWARNONONE(), although never reported so far.
To fix it, teach vmnormalpagepmd()/vmnormalpagepud() to consider whether pmdspecial/pudspecial is actually implemented.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64181?
The severity of CVE-2026-64181 is rated as 27.
How do I fix CVE-2026-64181?
To fix CVE-2026-64181, ensure that you update the Linux kernel to the latest version that addresses this vulnerability.
What systems are affected by CVE-2026-64181?
CVE-2026-64181 primarily affects x86 32-bit systems with Transparent Huge Pages (THP) enabled.
What functionality does CVE-2026-64181 impact?
CVE-2026-64181 impacts the memory management functionality related to the __vm_normal_page() function in the Linux kernel.
What warning message is associated with CVE-2026-64181?
The warning message associated with CVE-2026-64181 is 'WARNING: mm/memory.c:735 at __vm_normal_page+0x6a/0x7d'.