CVE-2025-68292

Summary

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

mm/memfd: fix information leak in hugetlb folios

When allocating hugetlb folios for memfd, three initialization steps are missing:

  1. Folios are not zeroed, leading to kernel memory disclosure to userspace
  2. Folios are not marked uptodate before adding to page cache
  3. hugetlb_fault_mutex is not taken before hugetlb_add_to_page_cache()

The memfd allocation path bypasses the normal page fault handler (hugetlb_no_page) which would handle all of these initialization steps. This is problematic especially for udmabuf use cases where folios are pinned and directly accessed by userspace via DMA.

Fix by matching the initialization pattern used in hugetlb_no_page():

  • Zero the folio using folio_zero_user() which is optimized for huge pages
  • Mark it uptodate with folio_mark_uptodate()
  • Take hugetlb_fault_mutex before adding to page cache to prevent races

The folio_zero_user() change also fixes a potential security issue where uninitialized kernel memory could be disclosed to userspace through read() or mmap() operations on the memfd.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux89c1905d9c140372b7f50ef48f42378cf85d9bc5 < 50b4c1c28733a536d637d2f0401d60bcfef60ef2affected
LinuxLinux89c1905d9c140372b7f50ef48f42378cf85d9bc5 < b09d7c4dc642849d9a96753233c6d00364017fd6affected
LinuxLinux89c1905d9c140372b7f50ef48f42378cf85d9bc5 < de8798965fd0d9a6c47fc2ac57767ec32de12b49affected
LinuxLinux6.11affected
LinuxLinux0 < 6.11unaffected
LinuxLinux6.12.61 <= 6.12.*unaffected
LinuxLinux6.17.11 <= 6.17.*unaffected
LinuxLinux6.18 <= *unaffected

Weaknesses

References