← Back to CVE List
CVE-2026-90116NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: mtpav: shut down output timer before card teardown
snd_mtpav_output_timer() rearms chip->timer while holding
chip->spinlock and accesses the card-private mtpav state.
snd_mtpav_free() currently takes the same lock and calls
timer_delete() when the timer is active. This only removes a
pending timer; it does not wait for a callback that is already
running and does not prevent the callback from rearming the timer.
A callback running on another CPU can therefore continue after
snd_mtpav_free() releases the lock and access the card-private
state while the card is being torn down. It can also rearm the
timer after timer_delete() has returned.
Call timer_shutdown_sync() without holding chip->spinlock. This
waits for any running callback to finish and prevents further
rearming before the card-private mtpav state is released.
ALSA: mtpav: shut down output timer before card teardown
snd_mtpav_output_timer() rearms chip->timer while holding
chip->spinlock and accesses the card-private mtpav state.
snd_mtpav_free() currently takes the same lock and calls
timer_delete() when the timer is active. This only removes a
pending timer; it does not wait for a callback that is already
running and does not prevent the callback from rearming the timer.
A callback running on another CPU can therefore continue after
snd_mtpav_free() releases the lock and access the card-private
state while the card is being torn down. It can also rearm the
timer after timer_delete() has returned.
Call timer_shutdown_sync() without holding chip->spinlock. This
waits for any running callback to finish and prevents further
rearming before the card-private mtpav state is released.
Affected & Patched Versions
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < 392c985c6b03dfdf4904c0d464f18735ca3c4df8
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < 1e16e82581521a2fe20eda29bdc9e75286f7c950
- Linux Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and < c73cb5b7c159246dd572277c668851a56e516019
- Linux Linux >= 2.6.12
- Linux Linux 392c985c6b03dfdf4904c0d464f18735ca3c4df8
- Linux Linux 1e16e82581521a2fe20eda29bdc9e75286f7c950
- Linux Linux c73cb5b7c159246dd572277c668851a56e516019