GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel mm/rmap: stale batch count corrupts folio refcounts on device-exclusive pages

CVSS 7.8CVE-2026-63950Kernel, userspace & hypervisorcurated

Impact

try_to_unmap_one() does not reset nr_pages at the start of each page-table walk iteration, so a count computed by a previous folio_unmap_pte_batch() call is reused on a later entry that never re-ran the batching. When the later entry is a device-exclusive PTE, the wrong page count is applied to folio refcount and mapcount updates, corrupting them. Device-exclusive PTEs are created by the HMM path that accelerator drivers use for coherent device memory, so this is reachable on GPU nodes doing unified or managed memory, combined with a lazyfree (MADV_FREE) large folio and node reclaim. The reported userspace-visible effect is a kernel crash from refcount/mapcount corruption - an unscheduled loss of the whole node and every tenant on it.

Who can reach it

Local, unprivileged, on a node where a driver provides HMM device-exclusive mappings. The reproducer maps a 64K anonymous large folio with MAP_DROPPABLE, calls madvise(MADV_FREE), makes the last page device-exclusive through the driver, and triggers node reclaim. Any tenant with an accelerator device node and the ability to pressure memory is in a position to drive it.

What to do

Patch the kernel to a stable release that initializes nr_pages to 1 at the top of the loop, then drain and reboot each node. Nodes whose accelerator drivers never create device-exclusive PTEs are not exposed. No mitigation short of the patch is published; the upstream note records that further device-private/rmap interaction bugs were still under investigation, so treat this as one fix in an area that may see more.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.