Cloudanix VulnDB

CVE-2026-64131

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

Jul 19, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

Certain Linux systems using advanced device memory features may log kernel warnings or crash during memory cleanup, so they should be updated with the vendor’s kernel fix.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a Linux kernel memory-management flaw in the unmap path for device-private and device-exclusive page table entries used by HMM/device memory migration. The kernel checked whether the VMA was anonymous using vma_is_anonymous(), but the relevant condition is whether the folio itself is anonymous. A private file-backed mapping can contain an anonymous folio, allowing device-private migration while causing the unmap path to incorrectly hit a WARN condition during munmap or process teardown. The described effect is a spurious kernel warning; on systems configured to panic on warnings, this can become a local denial of service.

Why it matters to the business

The main operational risk is instability or outages on Linux systems that use device-private memory features, commonly associated with GPU, accelerator, or HMM-enabled workloads. Although public exploitation maturity is listed as none, EPSS is very low, and it is not in CISA KEV or known ransomware use, affected systems may still experience kernel warning storms, degraded reliability, or full crashes if kernel warnings are configured to trigger panics.

How an attack unfolds

An attacker would need local code execution or the ability to run a workload that can exercise device-private or device-exclusive memory migration. They create or use a private file-backed mapping whose folio is anonymous, trigger migration of that folio to device-private memory through an HMM-capable device or driver path, and then unmap the memory or terminate the process. During teardown, the kernel unmap path evaluates the wrong anonymity condition and emits a WARN from mm/memory.c. In most default configurations this is primarily log noise and kernel tainting; on hardened or debugging configurations where panic_on_warn is enabled, the same condition can crash the system and produce a local denial of service.

How to fix it

Apply the vendor-supplied Linux kernel update that includes the mm/memory fix for device-private and device-exclusive page unmapping. No exact fixed package versions were provided in the input, so track the fix through the operating-system or kernel vendor advisory for CVE-2026-64131. As interim risk reduction, avoid enabling panic_on_warn on production systems where untrusted users can run GPU/HMM workloads, restrict access to accelerator device nodes to trusted users and jobs, and limit exposure of HMM/device-private memory features in multi-user environments until the kernel is updated.

How to confirm the fix worked

Confirm the running kernel version contains the upstream or vendor backport for the mm/memory unmap fix. Review vendor changelogs for references to fixing spurious warnings when unmapping device-private or device-exclusive pages. After patching, run representative GPU/HMM/device-memory workloads that previously exercised device-private migration and verify that munmap or process teardown no longer produces WARN traces from unmap_page_range or mm/memory.c. Also verify that panic_on_warn is not unexpectedly enabled unless intentionally required.

Typical attack path

  1. Obtain local execution on a Linux system with HMM/device-private or device-exclusive memory support exposed through GPU or accelerator drivers.
  2. Create or interact with a private file-backed memory mapping that can contain anonymous folios.
  3. Trigger device-private or device-exclusive page migration through the relevant driver/runtime path.
  4. Unmap the affected range with munmap or allow process teardown to unmap it.
  5. Cause the kernel to emit a WARN in the memory unmap path; if panic_on_warn is enabled, trigger a kernel panic and system outage.

How to detect it

To determine whether this condition has occurred, review kernel log sources such as dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, crash dumps, and centralized syslog/SIEM data. Look for WARN splats referencing mm/memory.c, unmap_page_range, munmap, unmap_vmas, or device-private/HMM-related call traces. Pay particular attention to systems running GPU or accelerator drivers and modules such as test_hmm, nvidia_uvm, or other HMM-enabled components. If panic_on_warn is enabled, also review kdump/vmcore records and reboot/crash telemetry for kernel panics immediately following these warning signatures. There are no reliable remote network indicators for this issue because exploitation requires local memory-management behavior rather than a network protocol artifact.

  • WARNING: mm/memory.c:1754
  • unmap_page_range.cold
  • unmap_page_range
  • unmap_vmas
  • unmap_region
  • vms_complete_munmap_vmas
  • do_vmi_align_munmap
  • do_vmi_munmap
  • __vm_munmap
  • __x64_sys_munmap
  • dmirror_interval_invalidate
  • test_hmm
  • nvidia_uvm
  • nvidia(O)
  • Tainted: G W O
  • panic_on_warn

What your security team should do

  • Prioritize patching Linux systems that run GPU, accelerator, HMM, or device-private memory workloads, especially shared compute nodes and multi-user systems.
  • Check whether panic_on_warn is enabled; if so, treat exposure as higher severity because a warning can become a host crash.
  • Restrict access to GPU or accelerator device files and HMM-capable workloads to trusted users until kernel updates are deployed.
  • Monitor kernel logs for WARN traces involving unmap_page_range, mm/memory.c, device-private pages, test_hmm, nvidia_uvm, or similar HMM-related modules.
  • Because this is not KEV-listed, has no known ransomware association, and has very low EPSS, handle it through normal kernel maintenance unless the environment relies heavily on HMM/device-private memory or panic_on_warn is enabled.

The record

In the Linux kernel, the following vulnerability has been resolved: mm/memory: fix spurious warning when unmapping device-private/exclusive pages Device private and exclusive entries are only supported for anonymous folios. This condition is tested in __migrate_device_pages() and make_device_exclusive() using folio_test_anon(). However the unmap path tests this assumption using vma_is_anonymous(). This is wrong because whilst anonymous VMAs can only contain folios where folio_test_anon() is true the opposite relation does not hold. A folio for which folio_test_anon() is true does not imply vma_is_anonymous() is true. Such a condition can occur if for example a folio is part of a private filebacked mapping. In this case vma_is_anonymous() is false as the mapping is filebacked, but folio_test_anon() may be true, thus permitting devices to migrate the folio to device private memory. This can lead to the following spurious warnings during process teardown: [ 772.737706] ------------[ cut here ]------------ [ 772.739201] WARNING: mm/memory.c:1754 at unmap_page_range.cold+0x26/0x18a, CPU#17: hmm-tests/2041 [ 772.742050] Modules linked in: test_hmm nvidia_uvm(O) nvidia(O) [ 772.743959] CPU: 17 UID: 0 PID: 2041 Comm: hmm-tests Tainted: G W O 7.0.0+ #387 PREEMPT(full) [ 772.747104] Tainted: [W]=WARN, [O]=OOT_MODULE [ 772.748509] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [ 772.752117] RIP: 0010:unmap_page_range.cold+0x26/0x18a [ 772.753780] Code: 7e fe ff ff 48 89 4c 24 78 4c 89 44 24 38 e8 f2 ff b1 00 48 8b 4c 24 78 4c 8b 44 24 38 48 8b 44 24 18 48 83 78 48 00 74 04 90 <0f> 0b 90 48 89 ca b8 ff ff 37 00 48 c1 ea 03 48 c1 e0 2a 80 3c 02 [ 772.759602] RSP: 0018:ffff888112607550 EFLAGS: 00010286 [ 772.761310] RAX: ffff88811bbf4dc0 RBX: dffffc0000000000 RCX: ffffea03e9bfffd8 [ 772.763583] RDX: 1ffff1102377e9c1 RSI: 0000000000000008 RDI: ffff88811bbf4e08 [ 772.765914] RBP: 0000000000000006 R08: ffff8881059f7448 R09: ffffed10224c0e68 [ 772.768184] R10: ffff888112607347 R11: 0000000000000001 R12: 0000000000000001 [ 772.770461] R13: ffffea03e9bfffc0 R14: ffff888112607908 R15: ffffea03e9bfffc0 [ 772.772782] FS: 00007f327caa2780(0000) GS:ffff888427b7d000(0000) knlGS:0000000000000000 [ 772.775328] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 772.777187] CR2: 00007f327ca89000 CR3: 00000001994d5000 CR4: 00000000000006f0 [ 772.779135] Call Trace: [ 772.779792] <TASK> [ 772.780317] ? dmirror_interval_invalidate+0x1a3/0x290 [test_hmm] [ 772.781873] ? vm_normal_page_pud+0x2b0/0x2b0 [ 772.782992] ? __rwlock_init+0x150/0x150 [ 772.784006] ? lock_release+0x216/0x2b0 [ 772.785008] ? __mmu_notifier_invalidate_range_start+0x505/0x6e0 [ 772.786522] ? lock_release+0x216/0x2b0 [ 772.787498] ? unmap_single_vma+0xb6/0x210 [ 772.788573] unmap_vmas+0x27d/0x520 [ 772.789506] ? unmap_single_vma+0x210/0x210 [ 772.790607] ? mas_update_gap.part.0+0x620/0x620 [ 772.791834] unmap_region+0x19e/0x350 [ 772.792769] ? remove_vma+0x130/0x130 [ 772.793684] ? mas_alloc_nodes+0x1f2/0x300 [ 772.794730] vms_complete_munmap_vmas+0x8c1/0xe20 [ 772.795926] ? unmap_region+0x350/0x350 [ 772.796917] do_vmi_align_munmap+0x36a/0x4e0 [ 772.798018] ? lock_release+0x216/0x2b0 [ 772.799024] ? vma_shrink+0x620/0x620 [ 772.799983] do_vmi_munmap+0x150/0x2c0 [ 772.800939] __vm_munmap+0x161/0x2c0 [ 772.801872] ? expand_downwards+0xd60/0xd60 [ 772.802948] ? clockevents_program_event+0x1ef/0x540 [ 772.804217] ? lock_release+0x216/0x2b0 [ 772.805158] __x64_sys_munmap+0x59/0x80 [ 772.805776] do_syscall_64+0xfc/0x670 [ 772.806336] ? irqentry_exit+0xda/0x580 [ 772.806976] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 772.807772] RIP: 0033:0x7f327cbb2717 [ 772.808323] Code: 73 01 c3 48 8b 0d f9 76 0d 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 0b 00 00 00 0f 05 <48> 3d 01 f0 ff ---truncated---

Affected packages

Ecosystem Package Introduced Fixed