CVE & CISA-KEV Catalog

CVE-2025-21984

MEDIUM
4.7
CVSS v3
NVD

Description

In the Linux kernel, the following vulnerability has been resolved: mm: fix kernel BUG when userfaultfd_move encounters swapcache userfaultfd_move() checks whether the PTE entry is present or a swap entry. - If the PTE entry is present, move_present_pte() handles folio migration by setting: src_folio->index = linear_page_index(dst_vma, dst_addr); - If the PTE entry is a swap entry, move_swap_pte() simply copies the PTE to the new dst_addr. This approach is incorrect because, even if the PTE is a swap entry, it can still reference a folio that remains in the swap cache. This creates a race window between steps 2 and 4. 1. add_to_swap: The folio is added to the swapcache. 2. try_to_unmap: PTEs are converted to swap entries. 3. pageout: The folio is written back. 4. Swapcache is cleared. If userfaultfd_move() occurs in the window between steps 2 and 4, after the swap PTE has been moved to the destination, accessing the destination triggers do_swap_page(), which may locate the folio in the swapcache. However, since the folio's index has not been updated to match the destination VMA, do_swap_page() will detect a mismatch. This can result in two critical issues depending on the system configuration. If KSM is disabled, both small and large folios can trigger a BUG during the add_rmap operation due to: page_pgoff(folio, page) != linear_page_index(vma, address) [ 13.336953] page: refcount:6 mapcount:1 mapping:00000000f43db19c index:0xffffaf150 pfn:0x4667c [ 13.337520] head: order:2 mapcount:1 entire_mapcount:0 nr_pages_mapped:1 pincount:0 [ 13.337716] memcg:ffff00000405f000 [ 13.337849] anon flags: 0x3fffc0000020459(locked|uptodate|dirty|owner_priv_1|head|swapbacked|node=0|zone=0|lastcpupid=0xffff) [ 13.338630] raw: 03fffc0000020459 ffff80008507b538 ffff80008507b538 ffff000006260361 [ 13.338831] raw: 0000000ffffaf150 0000000000004000 0000000600000000 ffff00000405f000 [ 13.339031] head: 03fffc0000020459 ffff80008507b538 ffff80008507b538 ffff000006260361 [ 13.339204] head: 0000000ffffaf150 0000000000004000 0000000600000000 ffff00000405f000 [ 13.339375] head: 03fffc0000000202 fffffdffc0199f01 ffffffff00000000 0000000000000001 [ 13.339546] head: 0000000000000004 0000000000000000 00000000ffffffff 0000000000000000 [ 13.339736] page dumped because: VM_BUG_ON_PAGE(page_pgoff(folio, page) != linear_page_index(vma, address)) [ 13.340190] ------------[ cut here ]------------ [ 13.340316] kernel BUG at mm/rmap.c:1380! [ 13.340683] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP [ 13.340969] Modules linked in: [ 13.341257] CPU: 1 UID: 0 PID: 107 Comm: a.out Not tainted 6.14.0-rc3-gcf42737e247a-dirty #299 [ 13.341470] Hardware name: linux,dummy-virt (DT) [ 13.341671] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 13.341815] pc : __page_check_anon_rmap+0xa0/0xb0 [ 13.341920] lr : __page_check_anon_rmap+0xa0/0xb0 [ 13.342018] sp : ffff80008752bb20 [ 13.342093] x29: ffff80008752bb20 x28: fffffdffc0199f00 x27: 0000000000000001 [ 13.342404] x26: 0000000000000000 x25: 0000000000000001 x24: 0000000000000001 [ 13.342575] x23: 0000ffffaf0d0000 x22: 0000ffffaf0d0000 x21: fffffdffc0199f00 [ 13.342731] x20: fffffdffc0199f00 x19: ffff000006210700 x18: 00000000ffffffff [ 13.342881] x17: 6c203d2120296567 x16: 6170202c6f696c6f x15: 662866666f67705f [ 13.343033] x14: 6567617028454741 x13: 2929737365726464 x12: ffff800083728ab0 [ 13.343183] x11: ffff800082996bf8 x10: 0000000000000fd7 x9 : ffff80008011bc40 [ 13.343351] x8 : 0000000000017fe8 x7 : 00000000fffff000 x6 : ffff8000829eebf8 [ 13.343498] x5 : c0000000fffff000 x4 : 0000000000000000 x3 : 0000000000000000 [ 13.343645] x2 : 0000000000000000 x1 : ffff0000062db980 x0 : 000000000000005f [ 13.343876] Call trace: [ 13.344045] __page_check_anon_rmap+0xa0/0xb0 (P) [ 13.344234] folio_add_anon_rmap_ptes+0x22c/0x320 [ 13.344333] do_swap_page+0x1060/0x1400 [ 13.344417] __handl ---truncated---

How to fix

Remediation Available
linuxDebian
Fixed in:6.12.20-1CVE-2025-21984
Fixed in:6.12.20-1CVE-2025-21984
linux-azure-6.11Ubuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-gcp-6.11Ubuntu
Fixed in:6.11.0-1016.16~24.04.1USN-7605-1
linux-hwe-6.11Ubuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-image-6.11.0-1015-lowlatencyUbuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-6.11.0-1015-lowlatency-64kUbuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-6.11.0-1016-gcpUbuntu
Fixed in:6.11.0-1016.16~24.04.1USN-7605-1
linux-image-6.11.0-1016-gcp-64kUbuntu
Fixed in:6.11.0-1016.16~24.04.1USN-7605-1
linux-image-6.11.0-1018-azureUbuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-6.11.0-1018-azure-fdeUbuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-6.11.0-1024-oemUbuntu
Fixed in:6.11.0-1024.24USN-7606-1
linux-image-6.11.0-28-genericUbuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-image-6.11.0-28-generic-64kUbuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-image-azureUbuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-azure-6.11Ubuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-azure-fdeUbuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-azure-fde-6.11Ubuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-azure-fde-edgeUbuntu
Fixed in:6.11.0-1018.18~24.04.1USN-7628-1
linux-image-gcpUbuntu
Fixed in:6.11.0-1016.16~24.04.1USN-7605-1
linux-image-gcp-64kUbuntu
Fixed in:6.11.0-1016.16~24.04.1USN-7605-1
linux-image-generic-64k-hwe-24.04Ubuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-image-generic-hwe-24.04Ubuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-image-lowlatency-6.11Ubuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-lowlatency-64k-6.11Ubuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-lowlatency-64k-hwe-24.04Ubuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-lowlatency-hwe-24.04Ubuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-image-oem-24.04bUbuntu
Fixed in:6.11.0-1024.24USN-7606-1
linux-image-virtual-hwe-24.04Ubuntu
Fixed in:6.11.0-28.28~24.04.1USN-7605-1
linux-lowlatency-hwe-6.11Ubuntu
Fixed in:6.11.0-1015.16~24.04.2USN-7605-2
linux-oem-6.11Ubuntu
Fixed in:6.11.0-1024.24USN-7606-1

Remediation is compiled from vendor and distribution security advisories. Always confirm against the linked source for your exact version and platform.

CVSS v3 Vector

Exploitability

Attack VectorLocal
Attack ComplexityHigh
Privileges RequiredLow
User InteractionNone
ScopeUnchanged

Impact

ConfidentialityNone
IntegrityNone
AvailabilityHigh

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

Exploit Intelligence

0.13%probability of exploitation in 30 days
3rdpercentile

Low risk: more likely to be exploited than 3% of all known CVEs.

References

Related Vulnerabilities

Other CWE-362 (Race Condition) vulnerabilities, ordered by exploit likelihood. View all

CVESeverityCVSSEPSSExploitedFix
CVE-2024-6387High8.1100%-Fix
CVE-2023-36884High7.599%KEV + RansomFix
CVE-2018-15473Medium5.399%-Fix
CVE-2024-27983High8.287%-Fix
CVE-2014-0226Medium6.886%-Fix
CVE-2016-5195High7.084%KEVFix
Embed a live status badge for CVE-2025-21984
CVE-2025-21984 severity badge

Markdown

[![CVE-2025-21984](https://tridentstack.com/cve/badge/CVE-2025-21984.svg)](https://tridentstack.com/cve/CVE-2025-21984)

HTML

<a href="https://tridentstack.com/cve/CVE-2025-21984"><img src="https://tridentstack.com/cve/badge/CVE-2025-21984.svg" alt="CVE-2025-21984"></a>

Find and fix vulnerabilities across your fleet

TridentStack Control continuously scans your Windows, macOS, and Linux fleet for known vulnerabilities, prioritizes them by severity and active exploitation, and patches them automatically.

Start free

This product uses NVD data but is not endorsed or certified by the NVD. EPSS scores courtesy of FIRST.org (https://www.first.org/epss). Source: CISA KEV Catalog. Data as of 2025-10-01.