CVE-2026-89967
massOut-of-bounds write in Linux kernel device memory migration (mm/migrate_device)
A heap out-of-bounds write exists in the Linux kernel's device memory migration code: migrate_device_range() and migrate_device_pfns() clear the PFN-array entries that follow a compound folio to preserve a page-granular representation, but when a compound folio extends past the end of the caller-provided range, the clearing loops run past the npages-sized array. A local attacker who can trigger HMM device memory migration with an anonymous huge page can reach this path — in testing, closing /dev/hmm_dmirror0 after migrating an anonymous huge page to device memory walks dmirror_device_evict_chunk() -> migrate_device_range() — and corrupt adjacent kernel memory. Exploitation could lead to local privilege escalation or a kernel crash, consistent with the CVSS 7.8 high score (local access, high confidentiality/integrity/availability impact). Any Linux kernel with HMM device-memory migration support that predates the upstream fix is affected, though the source data does not specify exact vulnerable version ranges. There is no evidence of in-the-wild exploitation and no public proof-of-concept; the flaw was found using a KASAN-instrumented x86 QEMU kernel running the HMM migrate_anon_huge_zero selftest.
What to do: Update the kernel through your distribution's security channel to a build containing the upstream mm/migrate_device fix (which skips compound folios that do not fit in the remaining PFN array); no specific fixed version number was provided in the source data. As interim mitigations, restrict local unprivileged access on hosts using HMM-based device-memory drivers and avoid workloads that migrate anonymous huge pages to device memory. Check whether HMM device nodes such as /dev/hmm_dmirror0 are present and review kernel logs for memory-corruption or KASAN reports.
| Linux kernel (mm/migrate_device) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In the Linux kernel, the following vulnerability has been resolved: mm/migrate_device: avoid out-of-bounds writes for compound folios migrate_device_range() and migrate_device_pfns() clear the entries following a compound folio so that the PFN arrays retain their page-granular representation. If a compound folio extends beyond the end of the caller-provided range, the loops clear all following folio entries without limiting them to the number of slots remaining in the npages-sized array, causing an out-of-bounds write. Do not proceed with a compound folio if its page-granular representation does not fit entirely in the remaining PFN array. If this happens, drop any reference and lock acquired for the folio, clear the remaining entries, and stop collecting. Observed with a KASAN x86 QEMU kernel using the HMM migrate_anon_huge_zero selftest. Closing /dev/hmm_dmirror0 after migrating an anonymous huge page to device memory exercises: dmirror_fops_release() -> dmirror_device_evict_chunk() -> migrate_device_range()
- Vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.