Description
In the Linux kernel, the following vulnerability has been resolved: mm/page_table_check: skip special zero mappings page_table_check_set() and page_table_check_clear() account mappings based on PageAnon(). Shared zero-page PTEs and huge zero PMDs are special mappings, but page_table_check can still account them as file-backed pages. An unprivileged process can populate enough zero mappings to overflow file_map_count and hit the existing BUG_ON(). The PTE path can do this with the shared zero page, and the PMD path can do the same with huge zero mappings. Skip special zero mappings in the user page-table accounting paths. Keep the PTE-side pte_special() check, and identify huge zero PMDs from the mapped folio instead of pmd_special(). That covers architectures where pmd_special() is a no-op without adding huge_zero_pfn checks to the generic counter helpers.
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
df4e817b710809425d899340dbfa8504a3ca4ba5 to < 084b031a1cc13b1d50b9660baace0b7eba52bebeaffecteddf4e817b710809425d899340dbfa8504a3ca4ba5 to < f6cf9832e677ec07b1675782bd2bad472cfd3cdcaffecteddf4e817b710809425d899340dbfa8504a3ca4ba5 to < 51e16e5adadaa78b56f31a1cb02eb7267787625eaffecteddf4e817b710809425d899340dbfa8504a3ca4ba5 to < 7755be923e325dc300f4b0c3e1ad7e91b28b3cb9affecteddf4e817b710809425d899340dbfa8504a3ca4ba5 to < b726eb3c94d23e09da0e0f46b0fa09fb2b5d99ccaffecteddf4e817b710809425d899340dbfa8504a3ca4ba5 to < 8db4bab826ccc9ec10fa41736a48031cd338d392affected
Linux Linux
Default version status: affected
5.17affected0 to < 5.17unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.46 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/084b031a1cc13b1d50b9660baace0b7eba52bebe ↗
- https://git.kernel.org/stable/c/f6cf9832e677ec07b1675782bd2bad472cfd3cdc ↗
- https://git.kernel.org/stable/c/51e16e5adadaa78b56f31a1cb02eb7267787625e ↗
- https://git.kernel.org/stable/c/7755be923e325dc300f4b0c3e1ad7e91b28b3cb9 ↗
- https://git.kernel.org/stable/c/b726eb3c94d23e09da0e0f46b0fa09fb2b5d99cc ↗
- https://git.kernel.org/stable/c/8db4bab826ccc9ec10fa41736a48031cd338d392 ↗