Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2025-38085

mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race

Description

In the Linux kernel, the following vulnerability has been resolved: mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race huge_pmd_unshare() drops a reference on a page table that may have previously been shared across processes, potentially turning it into a normal page table used in another process in which unrelated VMAs can afterwards be installed. If this happens in the middle of a concurrent gup_fast(), gup_fast() could end up walking the page tables of another process. While I don't see any way in which that immediately leads to kernel memory corruption, it is really weird and unexpected. Fix it with an explicit broadcast IPI through tlb_remove_table_sync_one(), just like we do in khugepaged when removing page tables for a THP collapse.

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

  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < 952596b08c74e8fe9e2883d1dc8a8f54a37384ecaffected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < a3d864c901a300c295692d129159fc3001a56185affected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < b7754d3aa7bf9f62218d096c0c8f6c13698fac8baffected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < fe684290418ef9ef76630072086ee530b92f02b8affected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < 034a52b5ef57c9c8225d94e9067f3390bb33922faffected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < a6bfeb97941a9187833b526bc6cc4ff5706d0ce9affected
  • 39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa to < 1013af4f585fccc4d3e5c5824d174de2257f7d6daffected

Linux Linux

Default version status: affected

  • 2.6.20affected
  • 0 to < 2.6.20unaffected
  • 5.10.239 to ≤ 5.10.*unaffected
  • 5.15.186 to ≤ 5.15.*unaffected
  • 6.1.142 to ≤ 6.1.*unaffected
  • 6.6.95 to ≤ 6.6.*unaffected
  • 6.12.35 to ≤ 6.12.*unaffected
  • 6.15.4 to ≤ 6.15.*unaffected
  • 6.16 to ≤ *unaffected

References