lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025090446-CVE-2025-38681-db66@gregkh>
Date: Thu,  4 Sep 2025 17:32:46 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2025-38681: mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd()

From: Greg Kroah-Hartman <gregkh@...nel.org>

Description
===========

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.

The Linux kernel CVE team has assigned CVE-2025-38681 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 5.10.241 with commit 3ee9a8c27bfd72c3f465004fa8455785d61be5e8
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 5.15.190 with commit 69bea84b06b5e779627e7afdbf4b60a7d231c76f
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.1.149 with commit ac25ec5fa2bf6e606dc7954488e4dded272fa9cd
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.6.103 with commit 1636b5e9c3543b87d673e32a47e7c18698882425
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.12.43 with commit ff40839e018b82c4d756d035f34a63aa2d93be83
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.15.11 with commit 67995d4244694928ce701928e530b5b4adeb17b4
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.16.2 with commit ca8c414499f2e5337a95a76be0d21b728ee31c6b
	Issue introduced in 5.7 with commit bbd6ec605c0fc286c3f8ce60b4ed44635361d58b and fixed in 6.17-rc1 with commit 59305202c67fea50378dcad0cc199dbc13a0e99a

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2025-38681
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	arch/arm64/mm/ptdump_debugfs.c
	arch/riscv/mm/ptdump.c
	arch/s390/mm/dump_pagetables.c
	mm/ptdump.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/3ee9a8c27bfd72c3f465004fa8455785d61be5e8
	https://git.kernel.org/stable/c/69bea84b06b5e779627e7afdbf4b60a7d231c76f
	https://git.kernel.org/stable/c/ac25ec5fa2bf6e606dc7954488e4dded272fa9cd
	https://git.kernel.org/stable/c/1636b5e9c3543b87d673e32a47e7c18698882425
	https://git.kernel.org/stable/c/ff40839e018b82c4d756d035f34a63aa2d93be83
	https://git.kernel.org/stable/c/67995d4244694928ce701928e530b5b4adeb17b4
	https://git.kernel.org/stable/c/ca8c414499f2e5337a95a76be0d21b728ee31c6b
	https://git.kernel.org/stable/c/59305202c67fea50378dcad0cc199dbc13a0e99a

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ