CVE Catalog

CVE-2025-38434

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

6th percentile - higher than 6% of all known CVEs

Summary

In the Linux kernel, a change setting TASK_SIZE_MAX to LONG_MAX to optimize access_ok() has been reverted. Addresses between TASK_SIZE and LONG_MAX, though not valid user addresses, were accepted by get_user_pages_fast(), causing issues (e.g., in futex). The fix restores the default TASK_SIZE, at the cost of performance.

Risk Assessment

The organization may experience system instability or errors in user memory operations, especially with mechanisms like futex, potentially leading to application or system crashes.

Recommendation

It is recommended to immediately update the Linux kernel to a version containing this fix to avoid potential memory integrity issues.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: Revert "riscv: Define TASK_SIZE_MAX for __access_ok()" This reverts commit ad5643cf2f69 ("riscv: Define TASK_SIZE_MAX for __access_ok()"). This commit changes TASK_SIZE_MAX to be LONG_MAX to optimize access_ok(), because the previous TASK_SIZE_MAX (default to TASK_SIZE) requires some computation. The reasoning was that all user addresses are less than LONG_MAX, and all kernel addresses are greater than LONG_MAX. Therefore access_ok() can filter kernel addresses. Addresses between TASK_SIZE and LONG_MAX are not valid user addresses, but access_ok() let them pass. That was thought to be okay, because they are not valid addresses at hardware level. Unfortunately, one case is missed: get_user_pages_fast() happily accepts addresses between TASK_SIZE and LONG_MAX. futex(), for instance, uses get_user_pages_fast(). This causes the problem reported by Robert [1]. Therefore, revert this commit. TASK_SIZE_MAX is changed to the default: TASK_SIZE. This unfortunately reduces performance, because TASK_SIZE is more expensive to compute compared to LONG_MAX. But correctness first, we can think about optimization later, if required.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS