In the Linux kernel, the following vulnerability has been resolved: ALSA: bcd2000: Fix race between rawmidi and disconnect Although we tried to fix the potential UAF issues at USB disconnect on bcd2000 driver, there is still an overlooked case -- namely, when a rawmidi trigger callback has been already running at USB disconnect handling, the in-flight function (e.g. bcd2000_midi_send()) could still access the URB, because the previous URB NULL-check & clearance was considered only for the URB complete callbacks, but not about the parallel rawmidi operations. For addressing the race, this patch introduced a new spinlock that covers each rawmidi operation as well as the rawmidi handling in the complete callback. The URB is cleared with the lock, so it guarantees that the pending rawmidi task already finished or a NULL check is effective.
https://git.kernel.org/stable/c/c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76
https://git.kernel.org/stable/c/9c8b6eff6e7505c128b615d9a1364ef66fa5c18e
https://git.kernel.org/stable/c/812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0
https://git.kernel.org/stable/c/3b824930259d54f5047ce6b5c97bd20db2fc2b98
https://git.kernel.org/stable/c/221253723dc58bb901c3f27a7659823e63fc598c
https://git.kernel.org/stable/c/0a7ecf52cb59ed77ec525deb52c496ea8fba10b1