CVE-2024-26759
Severity CVSS v4.0:
Pending analysis
Type:
CWE-787
Out-of-bounds Write
Publication date:
03/04/2024
Last modified:
16/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mm/swap: fix race when skipping swapcache<br />
<br />
When skipping swapcache for SWP_SYNCHRONOUS_IO, if two or more threads<br />
swapin the same entry at the same time, they get different pages (A, B). <br />
Before one thread (T0) finishes the swapin and installs page (A) to the<br />
PTE, another thread (T1) could finish swapin of page (B), swap_free the<br />
entry, then swap out the possibly modified page reusing the same entry. <br />
It breaks the pte_same check in (T0) because PTE value is unchanged,<br />
causing ABA problem. Thread (T0) will install a stalled page (A) into the<br />
PTE and cause data corruption.<br />
<br />
One possible callstack is like this:<br />
<br />
CPU0 CPU1<br />
---- ----<br />
do_swap_page() do_swap_page() with same entry<br />
<br />
<br />
swap_read_folio()
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:*:*:*:*:*:*:*:* | 4.15 (including) | 6.1.80 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.19 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.7 (excluding) |
cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:* |
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/13ddaf26be324a7f951891ecd9ccd04466d27458
- https://git.kernel.org/stable/c/2dedda77d4493f3e92e414b272bfa60f1f51ed95
- https://git.kernel.org/stable/c/305152314df82b22cf9b181f3dc5fc411002079a
- https://git.kernel.org/stable/c/d183a4631acfc7af955c02a02e739cec15f5234d
- https://git.kernel.org/stable/c/13ddaf26be324a7f951891ecd9ccd04466d27458
- https://git.kernel.org/stable/c/2dedda77d4493f3e92e414b272bfa60f1f51ed95
- https://git.kernel.org/stable/c/305152314df82b22cf9b181f3dc5fc411002079a
- https://git.kernel.org/stable/c/d183a4631acfc7af955c02a02e739cec15f5234d