CVE-2025-21696: mm: clear uffd-wp PTE/PMD state on mremap()
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.
Security readout for executives and security teams
Plain-English summary
This Linux kernel flaw can let a local, low-privileged user trigger a kernel warning that may affect system availability. It is not described as remote, and the source bundle does not show data theft or integrity impact.
Executive priority
Treat as a routine but real availability-risk kernel update. Prioritize shared Linux infrastructure, container hosts, and systems with untrusted local users, but do not escalate as remotely exploitable based on these sources.
Technical view
During mremap() of a userfaultfd write-protected memory region without UFFD_FEATURE_EVENT_REMAP, VMA uffd-wp state is cleared but PTE/PMD state can remain. A later writable mprotect() can hit page_table_check_pte_flags(), producing an availability-impacting kernel warning. The fix clears uffd-wp state across PTE, huge PMD, swap PTE, and marker paths.
Likely exposure
Linux systems running affected kernel versions are relevant, especially where untrusted local users or workloads can exercise memory-management features. The bundle identifies Linux as the affected product and does not name distributions or appliances.
Exploitation context
CVE data marks this as local, low-complexity, low-privilege, no-user-interaction, availability-only. KEV is false, and the provided sources do not support active exploitation claims.
Researcher notes
Focus review on userfaultfd write-protect, mremap(), mprotect(PROT_WRITE), and consistency between VMA and PTE/PMD uffd-wp state. Evidence is limited to CVE metadata and kernel stable references; no exploit details or distribution matrix are provided.
Mitigation direction
Update to a Linux kernel containing the cited stable fixes.
Use distribution vendor kernel advisories for packaged backports.
Prioritize multi-user, shared, and container-host systems.
Restrict untrusted local access where patching is delayed.
Validation and detection
Inventory Linux kernel versions across servers and container hosts.
Confirm vendor packages include the referenced stable commits.
Check whether affected hosts allow untrusted local workloads.
Review kernel logs for relevant page_table_check warnings.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-21696 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.