VDB

CVE-2025-38681

CVE-2025-38681 PUBLISHED

mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd()

Reported by linux · Published September 4, 2025

In the Linux kernel, the following vulnerability has been resolved: mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd() Memory hot remove unmaps and tears down various kernel page table regions as required. The ptdump code can race with concurrent modifications of the kernel page tables. When leaf entries are modified concurrently, the dump code may log stale or inconsistent information for a VA range, but this is otherwise not harmful. But when intermediate levels of kernel page table are freed, the dump code will continue to use memory that has been freed and potentially reallocated for another purpose. In such cases, the ptdump code may dereference bogus addresses, leading to a number of potential problems. To avoid the above mentioned race condition, platforms such as arm64, riscv and s390 take memory hotplug lock, while dumping kernel page table via the sysfs interface /sys/kernel/debug/kernel_page_tables. Similar race condition exists while checking for pages that might have been marked W+X via /sys/kernel/debug/kernel_page_tables/check_wx_pages which in turn calls ptdump_check_wx(). Instead of solving this race condition again, let's just move the memory hotplug lock inside generic ptdump_check_wx() which will benefit both the scenarios. Drop get_online_mems() and put_online_mems() combination from all existing platform ptdump code paths.

Fixed versions

Upgrade to a fixed version or later. Language registries are listed first, then Linux distributions, then vendor products.

PackageEcosystemFixed in
LinuxLinuxff40839e018b82c4d756d035f34a63aa2d93be83, ca8c414499f2e5337a95a76be0d21b728ee31c6b, ac25ec5fa2bf6e606dc7954488e4dded272fa9cd, 69bea84b06b5e779627e7afdbf4b60a7d231c76f, 67995d4244694928ce701928e530b5b4adeb17b4, 59305202c67fea50378dcad0cc199dbc13a0e99a, 5.7, 3ee9a8c27bfd72c3f465004fa8455785d61be5e8, 1636b5e9c3543b87d673e32a47e7c18698882425

Affected products

VendorProductVersions
LinuxLinuxbbd6ec605c0fc286c3f8ce60b4ed44635361d58b, bbd6ec605c0fc286c3f8ce60b4ed44635361d58b, bbd6ec605c0fc286c3f8ce60b4ed44635361d58b
LinuxLinux5.7, 0, 5.10.241
LinuxLinux*, 0, 5.15.190
amazon:2023kernel-libbpf-static0
amazon:2023kernel6.12-devel0
amazon:2023kernel6.12-libbpf0
amazon:2023perf6.120
amazon:2023kernel-livepatch-6.1.150-174.2730
amazon:2023kernel-headers0
amazon:2023kernel-libbpf0
amazon:2023python3-perf6.120
linuxlinux_kernel5.7, 5.7, 5.7
SiemensSIPLUS S7-1500 CPU 1518-4 PN/DP MFP3.1.7, 3.1.6
amazon:2023bpftool6.120
amazon:2023kernel-tools-devel0
amazon:2023kernel-livepatch-6.12.46-66.1210
amazon:2023bpftool0
amazon:2023kernel6.12-libbpf-static0
amazon:2023kernel-modules-extra0
amazon:2023kernel-modules-extra-common0

…and 16 more

Timeline

  • Sep 4, 2025 CVE Published
  • Sep 5, 2025 EPSS Score (30 in total, the first dated here)
  • Oct 12, 2025 PoC Published (17 in total, the first dated here)
  • Mar 29, 2026 Distribution Patch (172 in total, the first dated here)
  • Mar 29, 2026 Security Advisory (185 in total, the first dated here)
  • Jun 9, 2026 Coalition ESS Score
  • Oct 25, 2026 CVE Updated

Query this with the API

The same record, from the CLI:

vulnetix vdb vuln CVE-2025-38681
vulnetix vdb fixes CVE-2025-38681

Or with curl, using the org id and key from your account page:

curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
  "https://api.vdb.vulnetix.com/v2/vuln/CVE-2025-38681/fixes/registry"

The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart

Look up in the Resolve Platform →
$ Lookup Community · 50/day Open Lookup ›