[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025072555-CVE-2025-38424-500e@gregkh>
Date: Fri, 25 Jul 2025 16:16:57 +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-38424: perf: Fix sample vs do_exit()
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
perf: Fix sample vs do_exit()
Baisheng Gao reported an ARM64 crash, which Mark decoded as being a
synchronous external abort -- most likely due to trying to access
MMIO in bad ways.
The crash further shows perf trying to do a user stack sample while in
exit_mmap()'s tlb_finish_mmu() -- i.e. while tearing down the address
space it is trying to access.
It turns out that we stop perf after we tear down the userspace mm; a
receipie for disaster, since perf likes to access userspace for
various reasons.
Flip this order by moving up where we stop perf in do_exit().
Additionally, harden PERF_SAMPLE_CALLCHAIN and PERF_SAMPLE_STACK_USER
to abort when the current task does not have an mm (exit_mm() makes
sure to set current->mm = NULL; before commencing with the actual
teardown). Such that CPU wide events don't trip on this same problem.
The Linux kernel CVE team has assigned CVE-2025-38424 to this issue.
Affected and fixed versions
===========================
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 5.4.295 with commit 7b8f3c72175c6a63a95cf2e219f8b78e2baad34e
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 5.10.239 with commit 507c9a595bad3abd107c6a8857d7fd125d89f386
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 5.15.186 with commit a9f6aab7910a0ef2895797f15c947f6d1053160f
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 6.1.142 with commit 975ffddfa2e19823c719459d2364fcaa17673964
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 6.6.95 with commit 2ee6044a693735396bb47eeaba1ac3ae26c1c99b
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 6.12.35 with commit 456019adaa2f5366b89c868dea9b483179bece54
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 6.15.4 with commit 7311970d07c4606362081250da95f2c7901fc0db
Issue introduced in 3.7 with commit c5ebcedb566ef17bda7b02686e0d658a7bb42ee7 and fixed in 6.16-rc3 with commit 4f6fc782128355931527cefe3eb45338abd8ab39
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-38424
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:
kernel/events/core.c
kernel/exit.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/7b8f3c72175c6a63a95cf2e219f8b78e2baad34e
https://git.kernel.org/stable/c/507c9a595bad3abd107c6a8857d7fd125d89f386
https://git.kernel.org/stable/c/a9f6aab7910a0ef2895797f15c947f6d1053160f
https://git.kernel.org/stable/c/975ffddfa2e19823c719459d2364fcaa17673964
https://git.kernel.org/stable/c/2ee6044a693735396bb47eeaba1ac3ae26c1c99b
https://git.kernel.org/stable/c/456019adaa2f5366b89c868dea9b483179bece54
https://git.kernel.org/stable/c/7311970d07c4606362081250da95f2c7901fc0db
https://git.kernel.org/stable/c/4f6fc782128355931527cefe3eb45338abd8ab39
Powered by blists - more mailing lists