[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025021259-CVE-2025-21696-2482@gregkh>
Date: Wed, 12 Feb 2025 14:27:00 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2025-21696: mm: clear uffd-wp PTE/PMD state on mremap()
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.
The Linux kernel CVE team has assigned CVE-2025-21696 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.7 with commit 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 and fixed in 6.12.11 with commit 310ac886d68de661c3a334198d8604b722d7fdf8
Issue introduced in 5.7 with commit 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 and fixed in 6.13 with commit 0cef0bb836e3cfe00f08f9606c72abd72fe78ca3
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2025-21696
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
include/linux/userfaultfd_k.h
mm/huge_memory.c
mm/hugetlb.c
mm/mremap.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/310ac886d68de661c3a334198d8604b722d7fdf8
https://git.kernel.org/stable/c/0cef0bb836e3cfe00f08f9606c72abd72fe78ca3
Powered by blists - more mailing lists