Skip to main content

Linux Kernel CVE-2026-31575

| EUVDEUVD-2026-25468 MEDIUM
2026-04-24 Linux GHSA-2cxr-hf6j-p3mc
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.7 MEDIUM

Race condition requires concurrent thread execution within the same huge page, justifying AC:H; local low-privilege userfaultfd access required (PR:L); impact is kernel panic only (A:H, C:N, I:N).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 03:06 vuln.today
Patch released
Apr 27, 2026 - 23:15 nvd
Patch available
CVSS changed
Apr 27, 2026 - 20:52 NVD
5.5 (MEDIUM)
Patch available
Apr 24, 2026 - 16:16 EUVD
EUVD ID Assigned
Apr 24, 2026 - 15:00 euvd
EUVD-2026-25468
CVE Published
Apr 24, 2026 - 14:42 nvd
MEDIUM 5.5

DescriptionCVE.org

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

mm/userfaultfd: fix hugetlb fault mutex hash calculation

In mfill_atomic_hugetlb(), linear_page_index() is used to calculate the page index for hugetlb_fault_mutex_hash(). However, linear_page_index() returns the index in PAGE_SIZE units, while hugetlb_fault_mutex_hash() expects the index in huge page units. This mismatch means that different addresses within the same huge page can produce different hash values, leading to the use of different mutexes for the same huge page. This can cause races between faulting threads, which can corrupt the reservation map and trigger the BUG_ON in resv_map_release().

Fix this by introducing hugetlb_linear_page_index(), which returns the page index in huge page granularity, and using it in place of linear_page_index().

AnalysisAI

Race condition in the Linux kernel's userfaultfd hugetlb path allows a local low-privilege user to crash the kernel by triggering a BUG_ON assertion in resv_map_release(). The root cause is a unit mismatch in mfill_atomic_hugetlb(): linear_page_index() returns a PAGE_SIZE-unit index while hugetlb_fault_mutex_hash() expects a huge-page-granularity index, causing concurrent fault threads within the same huge page to acquire different mutexes and corrupt the reservation map. No public exploit has been identified and EPSS is 0.02% (4th percentile), placing real-world risk firmly in the low tier despite reliable kernel crash reproducibility under the right conditions.

Technical ContextAI

The vulnerability is in mm/userfaultfd.c within the Linux kernel memory management subsystem, specifically the mfill_atomic_hugetlb() function used for userfaultfd copy/zeropage operations on hugetlb-backed mappings. The bug is a unit mismatch: linear_page_index() computes a page frame number in PAGE_SIZE (typically 4 KB) units, but hugetlb_fault_mutex_hash() indexes its mutex array in huge page units (2 MB on x86-64, larger on other architectures). Two threads faulting at addresses within the same 2 MB huge page but at different 4 KB offsets will compute different hash values, acquire different mutexes, and concurrently mutate the hugetlb reservation map - a structure that assumes single-mutex serialization. This leads to map corruption and a BUG_ON panic in resv_map_release(). The fix introduces hugetlb_linear_page_index() which right-shifts by the huge page order before hashing. CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers all affected versions. No CWE was assigned, but the root cause class is CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization). The 'Information Disclosure' tag from ENISA/EUVD is inconsistent with both the CVSS vector (C:N) and the description - the actual impact is availability (kernel panic), not confidentiality.

RemediationAI

Upgrade the Linux kernel to a patched stable release: 6.18.24, 6.19.14, or 7.0.1. Upstream fix commits are available at https://git.kernel.org/stable/c/574501ede47ac439afd67ba9812bc66722d500ba, https://git.kernel.org/stable/c/08282b1bf74c69fc8ecd25493e7fdb5460f01290, and https://git.kernel.org/stable/c/f4689fc089765d36c026063fb22d23533e883eb6. Ubuntu users should apply the update described in USN-8488-1 (https://ubuntu.com/security/notices/USN-8488-1); Red Hat and SUSE users should monitor their respective security portals for patched kernel packages. Where immediate patching is not possible, set the sysctl vm.unprivileged_userfaultfd=0 (echo 0 > /proc/sys/vm/unprivileged_userfaultfd) to restrict userfaultfd to privileged processes only - note this may break QEMU/KVM live migration and some container checkpoint/restore workflows that rely on unprivileged userfaultfd. If hugetlb pages are not required by any workload, removing them from the system configuration (setting vm.nr_hugepages=0) eliminates the vulnerable code path entirely with no functional side effects on non-hugetlb workloads.

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

CVE-2026-31575 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy