CVE-2025-22015: mm/migrate: fix shmem xarray update during migration

Published Apr 8, 2025
·
Updated

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

15 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel>=6.1.71<6.1.132
Linux Linux kernel>=6.6.10<6.6.85
Linux Linux kernel>=6.7.1<6.12.21
Linux Linux kernel>=6.13<6.13.9
Linux Linux kernel=6.7
Linux Linux kernel=6.7-rc8
Linux Linux kernel=6.14-rc1
Linux Linux kernel=6.14-rc2
Linux Linux kernel=6.14-rc3
Linux Linux kernel=6.14-rc4
Linux Linux kernel=6.14-rc5
Linux Linux kernel=6.14-rc6
Linux Linux kernel=6.14-rc7
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1

Event History

Apr 8, 2025
CVE Published
via MITRE·08:18 AM
Data Sourced
via MITRE·08:18 AM
DescriptionSeverity
Data Sourced
via NVD·09:15 AM
RemedyDescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

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.

2

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.

3

What is affected by CVE-2025-22015?

CVE-2025-22015 affects the Linux kernel, specifically components involved in shmem folio management during migration.

4

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.

5

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.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203