CVE-2026-46280
lib: test_hmm: evict device pages on file close to avoid use-after-free
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.
INFO
Published Date :
June 8, 2026, 5:16 p.m.
Last Modified :
July 23, 2026, 8:10 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Migrate device private pages back to system memory.
- Free the dmirror struct after eviction.
- Apply the patch series for HMM kernel selftests.
- Update the Linux kernel to the latest version.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-46280.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-46280 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-46280
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-46280 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-46280 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Jul. 23, 2026
Action Type Old Value New Value Added Translation Title: Linux, Description: En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: lib: test_hmm: expulsar páginas de dispositivo al cerrar el archivo para evitar el uso después de liberación Serie de parches 'Correcciones y limpiezas menores de hmm_test'. Dos correcciones de errores y una limpieza para las autopruebas del kernel HMM. Estos fueron reportados principalmente por Zenghui Yu con un agradecimiento especial a Lorenzo por analizar y señalar los problemas. Este parche (de 3): Cuando se llama a dmirror_fops_release(), libera la estructura dmirror pero no migra primero las páginas privadas del dispositivo de vuelta a la memoria del sistema. Esto deja esas páginas con un puntero zone_device_data colgante a la dmirror liberada. Si ocurre una falla posterior en esas páginas (por ejemplo, durante un coredump), la devolución de llamada dmirror_devmem_fault() desreferencia el puntero obsoleto causando un pánico del kernel. Esto fue reportado [1] al ejecutar mm/ksft_hmm.sh en arm64, donde una falla de prueba activó SIGABRT y el coredump resultante recorrió las VMA causando fallas en las páginas privadas de dispositivo obsoletas. Solucione esto llamando a dmirror_device_evict_chunk() para cada fragmento de devmem en dmirror_fops_release() para migrar todas las páginas privadas del dispositivo de vuelta a la memoria del sistema antes de liberar la estructura dmirror. La función se mueve antes en el archivo para evitar una declaración anticipada. -
Initial Analysis by [email protected]
Jul. 08, 2026
Action Type Old Value New Value Added CWE CWE-416 Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.7 up to (excluding) 6.12.86 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.2 up to (excluding) 6.6.140 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.13 up to (excluding) 6.18.27 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.19 up to (excluding) 7.0.4 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.8 up to (excluding) 6.1.176 Added Reference Type kernel.org: https://git.kernel.org/stable/c/234071b4318feaeb27cd2e4e1b16ef6b055adf89 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/38f113f81d3f0adc658a4475dd3ecaec985e21d3 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/5846715b6382dd4c6a69b35a56ca6115d33bc2a0 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/744dd97752ef1076a8d8672bb0d8aa2c7abc1144 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/bf477abd448c76bb8ea51c9b4f63a3a17c4b6239 Types: Patch -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 19, 2026
Action Type Old Value New Value Added Reference https://git.kernel.org/stable/c/234071b4318feaeb27cd2e4e1b16ef6b055adf89 Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': 'bf477abd448c76bb8ea51c9b4f63a3a17c4b6239', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '5846715b6382dd4c6a69b35a56ca6115d33bc2a0', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '38f113f81d3f0adc658a4475dd3ecaec985e21d3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '744dd97752ef1076a8d8672bb0d8aa2c7abc1144', 'versionType': 'git'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.140', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.86', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.27', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.4', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '234071b4318feaeb27cd2e4e1b16ef6b055adf89', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': 'bf477abd448c76bb8ea51c9b4f63a3a17c4b6239', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '5846715b6382dd4c6a69b35a56ca6115d33bc2a0', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '38f113f81d3f0adc658a4475dd3ecaec985e21d3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '744dd97752ef1076a8d8672bb0d8aa2c7abc1144', 'versionType': 'git'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.1.176', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.140', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.86', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.27', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.4', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'affected'}] -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 17, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': 'bf477abd448c76bb8ea51c9b4f63a3a17c4b6239', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '5846715b6382dd4c6a69b35a56ca6115d33bc2a0', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '38f113f81d3f0adc658a4475dd3ecaec985e21d3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1', 'versionType': 'git'}, {'status': 'affected', 'version': 'b2ef9f5a5cb37643ca5def3516c546457074b882', 'lessThan': '744dd97752ef1076a8d8672bb0d8aa2c7abc1144', 'versionType': 'git'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.140', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.86', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.27', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.4', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['lib/test_hmm.c'], 'defaultStatus': 'affected'}] -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 14, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 08, 2026
Action Type Old Value New Value Added 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. Added Reference https://git.kernel.org/stable/c/38f113f81d3f0adc658a4475dd3ecaec985e21d3 Added Reference https://git.kernel.org/stable/c/5846715b6382dd4c6a69b35a56ca6115d33bc2a0 Added Reference https://git.kernel.org/stable/c/744dd97752ef1076a8d8672bb0d8aa2c7abc1144 Added Reference https://git.kernel.org/stable/c/9de1eb0aac2862d6144b8db0ec1388e79f8bc3e1 Added Reference https://git.kernel.org/stable/c/bf477abd448c76bb8ea51c9b4f63a3a17c4b6239