Description
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.
Product status
89c1905d9c140372b7f50ef48f42378cf85d9bc5 (git) before 50b4c1c28733a536d637d2f0401d60bcfef60ef2
89c1905d9c140372b7f50ef48f42378cf85d9bc5 (git) before b09d7c4dc642849d9a96753233c6d00364017fd6
89c1905d9c140372b7f50ef48f42378cf85d9bc5 (git) before de8798965fd0d9a6c47fc2ac57767ec32de12b49
6.11
Any version before 6.11
6.12.61 (semver)
6.17.11 (semver)
6.18 (original_commit_for_fix)
References
git.kernel.org/...c/50b4c1c28733a536d637d2f0401d60bcfef60ef2
git.kernel.org/...c/b09d7c4dc642849d9a96753233c6d00364017fd6
git.kernel.org/...c/de8798965fd0d9a6c47fc2ac57767ec32de12b49
Data based on CVE®. Copyright © 1999-2025, The MITRE Corporation. All rights reserved.