CVE-2026-89755: Linux kernel · mm/migrate_device: clear stale mapping after freeing swapcache
Affects Linux kernelSource CVE Database V5
Not known to be exploited · CVSS 7.8 High · fixed in 92db780dd644590c751246187e1229d5ac2e5544 : patch Linux kernel soon.
Data as of 26 Oct 2026, 13:47 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 4% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 92db780dd644590c751246187e1229d5ac2e5544, 34a00895d032a414830d41106a09329ae6c251b6, 8ffedc6573a665cdc31ebe47eae7b32b78d0df83 +1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 11 Sep 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade Linux kernel to 92db780dd644590c751246187e1229d5ac2e5544, 34a00895d032a414830d41106a09329ae6c251b6, 8ffedc6573a665cdc31ebe47eae7b32b78d0df83 or 4fa91f7bbc4135240b67daac03fc17d9e180a331.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
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.
References
- git.kernel.org/stable/c/92db780dd644590c751246187e1229d5ac2e5544 (opens in a new tab)
- git.kernel.org/stable/c/4fa91f7bbc4135240b67daac03fc17d9e180a331 (opens in a new tab)
- git.kernel.org/stable/c/8ffedc6573a665cdc31ebe47eae7b32b78d0df83 (opens in a new tab)
- git.kernel.org/stable/c/34a00895d032a414830d41106a09329ae6c251b6 (opens in a new tab)