CVE-2024-57849
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
11/01/2025
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
s390/cpum_sf: Handle CPU hotplug remove during sampling<br />
<br />
CPU hotplug remove handling triggers the following function<br />
call sequence:<br />
<br />
CPUHP_AP_PERF_S390_SF_ONLINE --> s390_pmu_sf_offline_cpu()<br />
...<br />
CPUHP_AP_PERF_ONLINE --> perf_event_exit_cpu()<br />
<br />
The s390 CPUMF sampling CPU hotplug handler invokes:<br />
<br />
s390_pmu_sf_offline_cpu()<br />
+--> cpusf_pmu_setup()<br />
+--> setup_pmc_cpu()<br />
+--> deallocate_buffers()<br />
<br />
This function de-allocates all sampling data buffers (SDBs) allocated<br />
for that CPU at event initialization. It also clears the<br />
PMU_F_RESERVED bit. The CPU is gone and can not be sampled.<br />
<br />
With the event still being active on the removed CPU, the CPU event<br />
hotplug support in kernel performance subsystem triggers the<br />
following function calls on the removed CPU:<br />
<br />
perf_event_exit_cpu()<br />
+--> perf_event_exit_cpu_context()<br />
+--> __perf_event_exit_context()<br />
+--> __perf_remove_from_context()<br />
+--> event_sched_out()<br />
+--> cpumsf_pmu_del()<br />
+--> cpumsf_pmu_stop()<br />
+--> hw_perf_event_update()<br />
<br />
to stop and remove the event. During removal of the event, the<br />
sampling device driver tries to read out the remaining samples from<br />
the sample data buffers (SDBs). But they have already been freed<br />
(and may have been re-assigned). This may lead to a use after free<br />
situation in which case the samples are most likely invalid. In the<br />
best case the memory has not been reassigned and still contains<br />
valid data.<br />
<br />
Remedy this situation and check if the CPU is still in reserved<br />
state (bit PMU_F_RESERVED set). In this case the SDBs have not been<br />
released an contain valid data. This is always the case when<br />
the event is removed (and no CPU hotplug off occured).<br />
If the PMU_F_RESERVED bit is not set, the SDB buffers are gone.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.4.287 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.231 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.174 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.120 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.66 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.5 (excluding) |
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/06a92f810df8037ca36157282ddcbefdcaf049b8
- https://git.kernel.org/stable/c/238e3af849dfdcb1faed544349f7025e533f9aab
- https://git.kernel.org/stable/c/99192c735ed4bfdff0d215ec85c8a87a677cb898
- https://git.kernel.org/stable/c/a0bd7dacbd51c632b8e2c0500b479af564afadf3
- https://git.kernel.org/stable/c/a69752f1e5de817941a2ea0609254f6f25acd274
- https://git.kernel.org/stable/c/b5be6a0bb639d165c8418d8dddd8f322587be8be
- https://git.kernel.org/stable/c/be54e6e0f93a39a9c00478d70d12956a5f3d5b9b
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html



