ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
The dreamcastcard->timer could schedule the spu_dma_work and the
spu_dma_work could also arm the dreamcastcard->timer.
When the snd_pcm_substream is closing, the aica_channel will be
deallocated. But it could still be dereferenced in the worker
thread. The reason is that del_timer() will return directly
regardless of whether the timer handler is running or not and
the worker could be rescheduled in the timer handler. As a result,
the UAF bug will happen. The racy situation is shown below:
(Thread 1) | (Thread 2)
snd_aicapcm_pcm_close() |
... | run_spu_dma() //worker
| mod_timer()
flush_work() |
del_timer() | aica_period_elapsed() //timer
kfree(dreamcastcard->channel) | schedule_work()
| run_spu_dma() //worker
... | dreamcastcard->channel-> //USE
In order to mitigate this bug and other possible corner cases,
call mod_timer() conditionally in run_spu_dma(), then implement
PCM sync_stop op to cancel both the timer and worker. The sync_stop
op will be called from PCM core appropriately when needed.
Analysis and contextual insights are available on OpenCVE Cloud.
No vendor fix or workaround currently provided.
Additional remediation guidance may be available on OpenCVE Cloud.
Tracking
Sign in to view the affected projects.
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-3842-1 | linux-5.10 security update |
Debian DSA |
DSA-5658-1 | linux security update |
Debian DSA |
DSA-5681-1 | linux security update |
Ubuntu USN |
USN-6816-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6817-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6817-2 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-6817-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6878-1 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-6896-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-4 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6896-5 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6898-3 | Linux kernel kernel vulnerabilities |
Ubuntu USN |
USN-6898-4 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6917-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6919-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6927-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6972-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6972-2 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-6972-3 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-6972-4 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-7019-1 | Linux kernel vulnerabilities |
Mon, 03 Feb 2025 15:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Debian
Debian debian Linux Linux Linux linux Kernel |
|
| CPEs | cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* |
|
| Vendors & Products |
Debian
Debian debian Linux Linux Linux linux Kernel |
|
| Metrics |
cvssV3_1
|
cvssV3_1
|
Fri, 22 Nov 2024 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Tue, 05 Nov 2024 10:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Tue, 05 Nov 2024 10:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Wed, 11 Sep 2024 18:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Wed, 11 Sep 2024 13:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2026-05-11T20:01:35.213Z
Reserved: 2024-02-19T14:20:24.144Z
Link: CVE-2024-26654
Updated: 2024-08-02T00:07:19.846Z
Status : Analyzed
Published: 2024-04-01T09:15:51.063
Modified: 2025-02-03T14:32:27.763
Link: CVE-2024-26654
OpenCVE Enrichment
No data.
Debian DLA
Debian DSA
Ubuntu USN