CVE-2025-21696

MediumCVSS 5.5/10Last modified Oct 30, 2026

Description

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

mm: clear uffd-wp PTE/PMD state on mremap()

When mremap()ing a memory region previously registered with userfaultfd as write-protected but without UFFD_FEATURE_EVENT_REMAP, an inconsistency in flag clearing leads to a mismatch between the vma flags (which have uffd-wp cleared) and the pte/pmd flags (which do not have uffd-wp cleared). This mismatch causes a subsequent mprotect(PROT_WRITE) to trigger a warning in page_table_check_pte_flags() due to setting the pte to writable while uffd-wp is still set.

Fix this by always explicitly clearing the uffd-wp pte/pmd flags on any such mremap() so that the values are consistent with the existing clearing of VM_UFFD_WP. Be careful to clear the logical flag regardless of its physical form; a PTE bit, a swap PTE bit, or a PTE marker. Cover PTE, huge PMD and hugetlb paths.

Metrics

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

Affected software

VendorProductVersions
LinuxLinux>= 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03, < 96fed9f20481d07eba8a7fe93bc77abef178198c; >= 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03, < 8e2f6ba256dd1e590addc48e6e9577bf39c482f2; >= 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03, < 310ac886d68de661c3a334198d8604b722d7fdf8; >= 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03, < 0cef0bb836e3cfe00f08f9606c72abd72fe78ca3
LinuxLinux5.7

References

Timeline

Published
Feb 12, 2025
Last modified
Oct 30, 2026
NVD status
Modified

Related CVEs from 2025

CVE-2025-216975.5In the Linux kernel, the following vulnerability has been resolved: drm/v3d: Ensure job pointer is set to NULL after job completion After CVE-2025-216995.5In the Linux kernel, the following vulnerability has been resolved: gfs2: Truncate address space when flipping GFS2_DIF_JDATA flag TruncatCVE-2025-21707.2A Server-side request forgery (SSRF) vulnerability has been identified in the SMA1000 Appliance Work Place interface, which in specific condCVE-2025-217007.8In the Linux kernel, the following vulnerability has been resolved: net: sched: Disallow replacing of child qdisc from one parent to anotheCVE-2025-217014.7In the Linux kernel, the following vulnerability has been resolved: net: avoid race between device unregistration and ethnl ops The followCVE-2025-217027.0In the Linux kernel, the following vulnerability has been resolved: pfifo_tail_enqueue: Drop new packet when sch->limit == 0 Expected behaCVE-2025-217037.8In the Linux kernel, the following vulnerability has been resolved: netem: Update sch->q.qlen before qdisc_tree_reduce_backlog() qdisc_treCVE-2025-217047.8In the Linux kernel, the following vulnerability has been resolved: usb: cdc-acm: Check control transfer buffer size before access If the CVE-2025-217055.5In the Linux kernel, the following vulnerability has been resolved: mptcp: handle fastopen disconnect correctly Syzbot was able to triggerCVE-2025-217065.5In the Linux kernel, the following vulnerability has been resolved: mptcp: pm: only set fullmesh for subflow endp With the in-kernel path-CVE-2025-217075.5In the Linux kernel, the following vulnerability has been resolved: mptcp: consolidate suboption status MPTCP maintains the received sub-oCVE-2025-217085.5In the Linux kernel, the following vulnerability has been resolved: net: usb: rtl8150: enable basic endpoint checking Syzkaller reports [1
CVE-2025-21696: Medium severity, CVSS 5.5 | Vulnix