CVE-2024-26654
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2024
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
In the Linux kernel, the following vulnerability has been resolved: 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.
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
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | eeb2a2ca0b8de7e1c66afaf719529154e7dc60b2 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 4206ad65a0ee76920041a755bd3c17c6ba59bba2 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | aa39e6878f61f50892ee2dd9d2176f72020be845 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 8c990221681688da34295d6d76cc2f5b963e83f5 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 9d66ae0e7bb78b54e1e0525456c6b54e1d132046 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 61d4787692c1fccdc268ffa7a891f9c149f50901 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | e955e8a7f38a856fc6534ba4e6bffd4d5cc80ac3 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 3c907bf56905de7d27b329afaf59c2fb35d17b04 | Unavailable | None listed |
| 198de43d758ca2700e2b52b49c0b189b4931466c | affected | git | 051e0840ffa8ab25554d6b14b62c9ab9e4901457 | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 2.6.23 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 2.6.23 | Unavailable | None listed |
| 4.19.312 | unaffected | semver | Unavailable | 4.19.* | None listed |
| 5.4.274 | unaffected | semver | Unavailable | 5.4.* | None listed |
| 5.10.215 | unaffected | semver | Unavailable | 5.10.* | None listed |
| 5.15.154 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.84 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.24 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.7.12 | unaffected | semver | Unavailable | 6.7.* | None listed |
| 6.8.3 | unaffected | semver | Unavailable | 6.8.* | None listed |
| 6.9 | unaffected | original_commit_for_fix | Unavailable | * | None listed |