CVE-2022-50630
kernel: mm: hugetlb: fix UAF in hugetlb_handle_userfault
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · December 8, 2025
Updated · October 2, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
mm: hugetlb: fix UAF in hugetlb_handle_userfault
The vma_lock and hugetlb_fault_mutex are dropped before handling userfault and reacquire them again after handle_userfault(), but reacquire the vma_lock could lead to UAF[1,2] due to the following race,
hugetlb_fault hugetlb_no_page /unlock vma_lock / hugetlb_handle_userfault handle_userfault / unlock mm->mmap_lock/ vm_mmap_pgoff do_mmap mmap_region munmap_vma_range /* clean old vma / / lock vma_lock again <--- UAF / / unlock vma_lock */
Since the vma_lock will unlock immediately after hugetlb_handle_userfault(), let's drop the unneeded lock and unlock in hugetlb_handle_userfault() to fix the issue.
[1] https://lore.kernel.org/linux-mm/[email protected]/ [2] https://lore.kernel.org/linux-mm/[email protected]/
Statement
A race in the hugetlb + userfaultfd MISSING path could re-acquire locks after handle_userfault() while the target VMA might have been unmapped and freed, leading to a Use-After-Free and kernel crash (and possible exploitation). If /proc/sys/vm/unprivileged_userfaultfd is set to 0 (disabled), the vulnerability cannot be triggered by unprivileged users, because creating a userfaultfd file descriptor then requires CAP_SYS_PTRACE or root privileges. As result the issue poses no risk in the default system configuration.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CVSS 3.1 · 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')