CVE-2026-89755

mm/migrate_device: clear stale mapping after freeing swapcache

State
Published
Severity
7.8 High
Published
Sep 11, 2026
Updated
Oct 21, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

mm/migrate_device: clear stale mapping after freeing swapcache

__migrate_device_pages() reads the folio mapping before calling folio_free_swap(). When folio_free_swap() succeeds, the folio is removed from the swap cache, but the saved mapping still points to swap_space.

Passing the stale mapping to folio_migrate_mapping() makes it use the mapped-folio path for a folio that is no longer in swapcache. It can then operate on swap_space.i_pages with invalid reference accounting, eventually triggering a folio reference count BUG.

After a successful split, nr still contains the number of pages in the original large folio, although each resulting page is now a separate order-0 folio. Reset nr to 1 so each split folio is processed separately, including its own swapcache removal and mapping lookup.

Refresh the saved mapping after folio_free_swap() so the current folio state is used during migration.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • df263d9a7dffee94ca5391120ee3b0587efa07f1 to before 92db780dd644590c751246187e1229d5ac2e5544Affected
  • df263d9a7dffee94ca5391120ee3b0587efa07f1 to before 4fa91f7bbc4135240b67daac03fc17d9e180a331Affected
  • df263d9a7dffee94ca5391120ee3b0587efa07f1 to before 8ffedc6573a665cdc31ebe47eae7b32b78d0df83Affected
  • df263d9a7dffee94ca5391120ee3b0587efa07f1 to before 34a00895d032a414830d41106a09329ae6c251b6Affected
LinuxLinux
  • 6.6Affected
  • before 6.6Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.111 through 6.12.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.