CVE-2026-64514: userfaultfd: gate must_wait writability check on pte_present()
In the Linux kernel, the following vulnerability has been resolved:
userfaultfd: gate mustwait writability check on ptepresent()
userfaultfdmustwait() and userfaultfdhugemustwait() read the PTE without taking the page table lock and then apply ptewrite() / hugeptewrite() to it. Those accessors decode bits from the present encoding only; on a swap or migration entry they read the offset bits that happen to share the same position and return an undefined result.
The intent of the check is "is this fault still WP-blocked?". A non-marker swap entry means the page is in transit -- the userfault context the original fault delivered against is no longer the same, and the swap-in or migration completion path will re-deliver a fresh fault if userspace still needs to handle it. Worst case under the current code the garbage write bit says "wait", and the thread stays asleep until a UFFDIOWAKE that may never arrive.
Gate the writability check on ptepresent() so the lockless re-check only inspects present-PTE bits when the entry is actually present. The non-present, non-marker case returns "don't wait" and lets the fault path retry.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Gate the must_wait writability check on pte_present() so the lockless re-check only occurs when the fault is still WP-blocked (rather than inspecting present-PTE bits on non-marker swap/in-transit entries).
userfaultfd must_wait writability check gating on pte_present() = enabled
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64514?
CVE-2026-64514 has a risk score of 27, indicating a critical vulnerability.
How do I fix CVE-2026-64514?
To fix CVE-2026-64514, apply the latest kernel updates provided by your Linux distribution.
What are the implications of CVE-2026-64514?
CVE-2026-64514 can potentially allow unauthorized memory access due to inadequate locking mechanisms in the userfaultfd implementation.
Which versions of the Linux kernel are affected by CVE-2026-64514?
CVE-2026-64514 affects certain versions of the Linux kernel prior to the fix implemented on July 25, 2026.
Is there a workaround for CVE-2026-64514 if I cannot update?
While a specific workaround is not detailed, minimizing userfaultfd usage may reduce exposure until a formal patch is applied.