]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ALSA: usx2y: us144mkii: fix work UAF on disconnect
authorHyeongJun An <sammiee5311@gmail.com>
Wed, 1 Jul 2026 09:52:31 +0000 (18:52 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 1 Jul 2026 11:54:23 +0000 (13:54 +0200)
commit147996e7e7c9e8339c0e04f6fa7ccb3e4d448ff7
tree9c20b61ae18f2f978a3cf81966cd9d7ab319d9e2
parent6c18817c01f6f76d9e2739903abde4d69397f2c6
ALSA: usx2y: us144mkii: fix work UAF on disconnect

tascam_disconnect() cancels capture_work and midi_in_work before
usb_kill_anchored_urbs() kills the capture/MIDI-in URBs.  Those URBs
self-resubmit, and their completion handlers reschedule the work.

A URB that completes in the small window between cancel_work_sync() and
usb_kill_anchored_urbs() therefore re-arms the work after its only
cancel.  Nothing cancels it again before snd_card_free() frees the
card-private tascam structure, so the work handler then runs on freed
memory.

Kill the anchored URBs before cancelling the work; once the work is
cancelled no remaining URB can complete to re-arm it.

Fixes: c1bb0c13e430 ("ALSA: usb-audio: us144mkii: Implement audio capture and decoding")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: HyeongJun An <sammiee5311@gmail.com>
Link: https://patch.msgid.link/20260701095231.1020811-1-sammiee5311@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/usx2y/us144mkii.c