CVE-2026-64181

Source
https://cve.org/CVERecord?id=CVE-2026-64181
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64181.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-64181
Downstream
Published
2026-07-19T15:41:04.455Z
Modified
2026-07-21T03:47:58.750395099Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
mm: fix __vm_normal_page() to handle missing support for pmd_special()/pud_special()
Details

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 CONFIGARCHSUPPORTSPMD_PFNMAP, 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 FW_ZEROPAGE set. Callers seem to tolerate that, though.

... and triggering the VMWARNON_ONE(), although never reported so far.

To fix it, teach vmnormalpagepmd()/vmnormalpagepud() to consider whether pmdspecial/pudspecial is actually implemented.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64181.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
af38538801c6a97565b44700ee6695d7d60ad779
Fixed
62153767e8fc3889bc6508e9ffe927aaf64c4334
Fixed
9052ea2ee2233be5d4786b8909151ca2bfbedf99
Fixed
c0c6ccd9828c3a1950623b546fa57292a77b5c73

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64181.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.18.0
Fixed
6.18.34
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.11

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64181.json"