CVE-2024-43869
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/08/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
perf: Fix event leak upon exec and file release<br />
<br />
The perf pending task work is never waited upon the matching event<br />
release. In the case of a child event, released via free_event()<br />
directly, this can potentially result in a leaked event, such as in the<br />
following scenario that doesn&#39;t even require a weak IRQ work<br />
implementation to trigger:<br />
<br />
schedule()<br />
prepare_task_switch()<br />
=======> <br />
perf_event_overflow()<br />
event->pending_sigtrap = ...<br />
irq_work_queue(&event->pending_irq)<br />
pending_sigtrap = 0;<br />
atomic_long_inc_not_zero(&event->refcount)<br />
task_work_add(&event->pending_task)<br />
finish_lock_switch()<br />
=======> <br />
perf_pending_irq()<br />
//do nothing, rely on pending task work<br />
refcount, 1, 0) != 1)<br />
// event is leaked<br />
<br />
Similar scenarios can also happen with perf_event_remove_on_exec() or<br />
simply against concurrent perf_event_release().<br />
<br />
Fix this with synchonizing against the possibly remaining pending task<br />
work while freeing the event, just like is done with remaining pending<br />
IRQ work. This means that the pending task callback neither need nor<br />
should hold a reference to the event, preventing it from ever beeing<br />
freed.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.84 (including) | 5.15.165 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.0.14 (including) | 6.1 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1.1 (including) | 6.1.103 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.44 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.3 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.1:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc8:*:*:*:*:*:* |
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/104e258a004037bc7dba9f6085c71dad6af57ad4
- https://git.kernel.org/stable/c/3a5465418f5fd970e86a86c7f4075be262682840
- https://git.kernel.org/stable/c/9ad46f1fef421d43cdab3a7d1744b2f43b54dae0
- https://git.kernel.org/stable/c/ed2c202dac55423a52d7e2290f2888bf08b8ee99
- https://git.kernel.org/stable/c/f34d8307a73a18de5320fcc6f40403146d061891
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



