cveboard RSS feed

CVE-2024-43869

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2024
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

perf: Fix event leak upon exec and file release

In the Linux kernel, the following vulnerability has been resolved: perf: Fix event leak upon exec and file release The perf pending task work is never waited upon the matching event release. In the case of a child event, released via free_event() directly, this can potentially result in a leaked event, such as in the following scenario that doesn't even require a weak IRQ work implementation to trigger: schedule() prepare_task_switch() =======> <NMI> perf_event_overflow() event->pending_sigtrap = ... irq_work_queue(&event->pending_irq) <======= </NMI> perf_event_task_sched_out() event_sched_out() event->pending_sigtrap = 0; atomic_long_inc_not_zero(&event->refcount) task_work_add(&event->pending_task) finish_lock_switch() =======> <IRQ> perf_pending_irq() //do nothing, rely on pending task work <======= </IRQ> begin_new_exec() perf_event_exit_task() perf_event_exit_event() // If is child event free_event() WARN(atomic_long_cmpxchg(&event->refcount, 1, 0) != 1) // event is leaked Similar scenarios can also happen with perf_event_remove_on_exec() or simply against concurrent perf_event_release(). Fix this with synchonizing against the possibly remaining pending task work while freeing the event, just like is done with remaining pending IRQ work. This means that the pending task callback neither need nor should hold a reference to the event, preventing it from ever beeing freed.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
8bffa95ac19ff27c8261904f89d36c7fcf215d59affectedgit9ad46f1fef421d43cdab3a7d1744b2f43b54dae0UnavailableNone listed
517e6a301f34613bff24a8e35b5455884f2d83d8affectedgited2c202dac55423a52d7e2290f2888bf08b8ee99UnavailableNone listed
517e6a301f34613bff24a8e35b5455884f2d83d8affectedgit104e258a004037bc7dba9f6085c71dad6af57ad4UnavailableNone listed
517e6a301f34613bff24a8e35b5455884f2d83d8affectedgitf34d8307a73a18de5320fcc6f40403146d061891UnavailableNone listed
517e6a301f34613bff24a8e35b5455884f2d83d8affectedgit3a5465418f5fd970e86a86c7f4075be262682840UnavailableNone listed
78e1317a174edbfd1182599bf76c092a2877672caffectedgitUnavailableUnavailableNone listed
5.15.84affectedsemver5.15.165UnavailableNone listed
6.0.14affectedsemver6.1UnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
6.1affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver6.1UnavailableNone listed
5.15.165unaffectedsemverUnavailable5.15.*None listed
6.1.103unaffectedsemverUnavailable6.1.*None listed
6.6.44unaffectedsemverUnavailable6.6.*None listed
6.10.3unaffectedsemverUnavailable6.10.*None listed
6.11unaffectedoriginal_commit_for_fixUnavailable*None listed