CVE-2025-22015: mm/migrate: fix shmem xarray update during migration
In the Linux kernel, the following vulnerability has been resolved:
mm/migrate: fix shmem xarray update during migration
A shmem folio can be either in page cache or in swap cache, but not at the same time. Namely, once it is in swap cache, folio->mapping should be NULL, and the folio is no longer in a shmem mapping.
In foliomigratemapping(), to determine the number of xarray entries to update, foliotestswapbacked() is used, but that conflates shmem in page cache case and shmem in swap cache case. It leads to xarray multi-index entry corruption, since it turns a sibling entry to a normal entry during xasstore() (see [1] for a userspace reproduction). Fix it by only using foliotestswapcache() to determine whether xarray is storing swap cache entries or not to choose the right number of xarray entries to update.
[1] https://lore.kernel.org/linux-mm/Z8idPCkaJW1IChjT@casper.infradead.org/
Note: In splithugepage(), foliotestanon() && foliotestswapcache() is used to get swapcache address space, but that ignores the shmem folio in swap cache case. It could lead to NULL pointer dereferencing when a in-swap-cache shmem folio is split at xastore(), since !foliotestanon() is true and folio->mapping is NULL. But fortunately, its caller splithugepagetolisttoorder() bails out early with EBUSY when folio->mapping is NULL. So no need to take care of it here.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-22015?
CVE-2025-22015 has been classified with a medium severity level due to its impact on memory management in the Linux kernel.
How do I fix CVE-2025-22015?
To fix CVE-2025-22015, you should update to the latest stable version of the Linux kernel where the vulnerability has been patched.
What is affected by CVE-2025-22015?
CVE-2025-22015 affects the Linux kernel, specifically components involved in shmem folio management during migration.
What types of systems are vulnerable to CVE-2025-22015?
Systems running unpatched versions of the Linux kernel that utilize shared memory features are vulnerable to CVE-2025-22015.
Is CVE-2025-22015 being actively exploited?
As of now, there are no public reports indicating that CVE-2025-22015 is being actively exploited in the wild.