Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2024-42233

filemap: replace pte_offset_map() with pte_offset_map_nolock()

Description

In the Linux kernel, the following vulnerability has been resolved: filemap: replace pte_offset_map() with pte_offset_map_nolock() The vmf->ptl in filemap_fault_recheck_pte_none() is still set from handle_pte_fault(). But at the same time, we did a pte_unmap(vmf->pte). After a pte_unmap(vmf->pte) unmap and rcu_read_unlock(), the page table may be racily changed and vmf->ptl maybe fails to protect the actual page table. Fix this by replacing pte_offset_map() with pte_offset_map_nolock(). As David said, the PTL pointer might be stale so if we continue to use it infilemap_fault_recheck_pte_none(), it might trigger UAF. Also, if the PTL fails, the issue fixed by commit 58f327f2ce80 ("filemap: avoid unnecessary major faults in filemap_fault()") might reappear.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 58f327f2ce80f9c7b4a70e9cf017ae8810d44a20 to < 6a6c2aec1a89506595801b4cf7e8eef035f33748affected
  • 58f327f2ce80f9c7b4a70e9cf017ae8810d44a20 to < 24be02a42181f0707be0498045c4c4b13273b16daffected

Linux Linux

Default version status: affected

  • 6.9affected
  • 0 to < 6.9unaffected
  • 6.9.10 to ≤ 6.9.*unaffected
  • 6.10 to ≤ *unaffected

References