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()->folio_add_lru(). The folio might be<br />
added to the per-cpu folio batch and won&#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.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
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:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/201e4aaf405dfd1308da54448654053004c579b5
- https://git.kernel.org/stable/c/43fad1d0284de30159661d0badfc3cbaf7e6f8f8
- https://git.kernel.org/stable/c/65291dcfcf8936e1b23cfd7718fdfde7cfaf7706
- https://git.kernel.org/stable/c/6564b014af92b677c1f07c44d7f5b595d589cf6e
- https://git.kernel.org/stable/c/9c2b4b657739ecda38e3b383354a29566955ac48
- https://git.kernel.org/stable/c/201e4aaf405dfd1308da54448654053004c579b5
- https://git.kernel.org/stable/c/43fad1d0284de30159661d0badfc3cbaf7e6f8f8
- https://git.kernel.org/stable/c/65291dcfcf8936e1b23cfd7718fdfde7cfaf7706
- https://git.kernel.org/stable/c/6564b014af92b677c1f07c44d7f5b595d589cf6e
- https://git.kernel.org/stable/c/9c2b4b657739ecda38e3b383354a29566955ac48



