CVE-2024-42293

arm64: mm: Fix lockless walks with static and dynamic page-table folding

State
Published
Severity
7.8 High
Published
Aug 17, 2024
Updated
Aug 5, 2026
Reserved
Jul 30, 2024

Read the record on cve.org

Description

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

arm64: mm: Fix lockless walks with static and dynamic page-table folding

Lina reports random oopsen originating from the fast GUP code when 16K pages are used with 4-level page-tables, the fourth level being folded at runtime due to lack of LPA2.

In this configuration, the generic implementation of p4d_offset_lockless() will return a 'p4d_t *' corresponding to the 'pgd_t' allocated on the stack of the caller, gup_fast_pgd_range(). This is normally fine, but when the fourth level of page-table is folded at runtime, pud_offset_lockless() will offset from the address of the 'p4d_t' to calculate the address of the PUD in the same page-table page. This results in a stray stack read when the 'p4d_t' has been allocated on the stack and can send the walker into the weeds.

Fix the problem by providing our own definition of p4d_offset_lockless() when CONFIG_PGTABLE_LEVELS <= 4 which returns the real page-table pointer rather than the address of the local stack variable.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0dd4f60a2c76938c2625f6c630c225699d97608b to before 78672d49d3eebbcda3589f4d6e589caf357c5a59Affected
  • 0dd4f60a2c76938c2625f6c630c225699d97608b to before 36639013b3462c06ff8e3400a427f775b4fc97f5Affected
LinuxLinux
  • 6.9Affected
  • before 6.9Not affected
  • 6.10.3 through 6.10.*Not affected
  • 6.11 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.