CVE-2024-35872

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
19/05/2024
Last modified:
24/09/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> mm/secretmem: fix GUP-fast succeeding on secretmem folios<br /> <br /> folio_is_secretmem() currently relies on secretmem folios being LRU<br /> folios, to save some cycles.<br /> <br /> However, folios might reside in a folio batch without the LRU flag set, or<br /> temporarily have their LRU flag cleared. Consequently, the LRU flag is<br /> unreliable for this purpose.<br /> <br /> In particular, this is the case when secretmem_fault() allocates a fresh<br /> page and calls filemap_add_folio()-&gt;folio_add_lru(). The folio might be<br /> added to the per-cpu folio batch and won&amp;#39;t get the LRU flag set until the<br /> batch was drained using e.g., lru_add_drain().<br /> <br /> Consequently, folio_is_secretmem() might not detect secretmem folios and<br /> GUP-fast can succeed in grabbing a secretmem folio, crashing the kernel<br /> when we would later try reading/writing to the folio, because the folio<br /> has been unmapped from the directmap.<br /> <br /> Fix it by removing that unreliable check.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.14 (including) 5.15.154 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.85 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.26 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.8.5 (excluding)
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*