CVE-2025-38681
Severity CVSS v4.0:
Pending analysis
Type:
CWE-362
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Publication date:
04/09/2025
Last modified:
08/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd()<br />
<br />
Memory hot remove unmaps and tears down various kernel page table regions<br />
as required. The ptdump code can race with concurrent modifications of<br />
the kernel page tables. When leaf entries are modified concurrently, the<br />
dump code may log stale or inconsistent information for a VA range, but<br />
this is otherwise not harmful.<br />
<br />
But when intermediate levels of kernel page table are freed, the dump code<br />
will continue to use memory that has been freed and potentially<br />
reallocated for another purpose. In such cases, the ptdump code may<br />
dereference bogus addresses, leading to a number of potential problems.<br />
<br />
To avoid the above mentioned race condition, platforms such as arm64,<br />
riscv and s390 take memory hotplug lock, while dumping kernel page table<br />
via the sysfs interface /sys/kernel/debug/kernel_page_tables.<br />
<br />
Similar race condition exists while checking for pages that might have<br />
been marked W+X via /sys/kernel/debug/kernel_page_tables/check_wx_pages<br />
which in turn calls ptdump_check_wx(). Instead of solving this race<br />
condition again, let&#39;s just move the memory hotplug lock inside generic<br />
ptdump_check_wx() which will benefit both the scenarios.<br />
<br />
Drop get_online_mems() and put_online_mems() combination from all existing<br />
platform ptdump code paths.
Impact
Base Score 3.x
4.70
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.7 (including) | 5.10.241 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.190 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.149 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.103 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.43 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.15.11 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.16 (including) | 6.16.2 (excluding) |
| cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:* |
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/1636b5e9c3543b87d673e32a47e7c18698882425
- https://git.kernel.org/stable/c/3ee9a8c27bfd72c3f465004fa8455785d61be5e8
- https://git.kernel.org/stable/c/59305202c67fea50378dcad0cc199dbc13a0e99a
- https://git.kernel.org/stable/c/67995d4244694928ce701928e530b5b4adeb17b4
- https://git.kernel.org/stable/c/69bea84b06b5e779627e7afdbf4b60a7d231c76f
- https://git.kernel.org/stable/c/ac25ec5fa2bf6e606dc7954488e4dded272fa9cd
- https://git.kernel.org/stable/c/ca8c414499f2e5337a95a76be0d21b728ee31c6b
- https://git.kernel.org/stable/c/ff40839e018b82c4d756d035f34a63aa2d93be83
- https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html



