CVE-2026-98316

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux3c00004f134fc819f9d9e202c6a64acde0a1f8d0 < 3b824930259d54f5047ce6b5c97bd20db2fc2b98affected
LinuxLinux6c07aad8a7c9ef8ebc4d03a964b882123a349a2e < c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76affected
LinuxLinuxeb482a06791d6168beb8c78cc904ac5a5ed96a55 < 0a7ecf52cb59ed77ec525deb52c496ea8fba10b1affected
LinuxLinux7df3194bdb7479cad9199889655a566a2c0c1d1b < 812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0affected
LinuxLinuxb06ebc7fe25a6af4a9f6e4a3d4236a4178ad4b01 < 9c8b6eff6e7505c128b615d9a1364ef66fa5c18eaffected
LinuxLinux459d3a64766f5ca2f1886daeaf24582831a5f5ab < 221253723dc58bb901c3f27a7659823e63fc598caffected
LinuxLinux9af08677aa57debaca5b57c8045c52a83d3dd376affected
LinuxLinux5a77febac6faf6da40fbb4555f703eeb91b58130affected
LinuxLinux6.1.188 < 6.1.189affected
LinuxLinux6.6.157 < 6.6.158affected
LinuxLinux6.12.109 < 6.12.112affected
LinuxLinux6.18.50 < 6.18.54affected
LinuxLinux7.2.4 < 7.2.8affected
LinuxLinux5.10.270 < 5.11affected
LinuxLinux5.15.221 < 5.16affected
LinuxLinux7.3-rc1affected
LinuxLinux0 < 7.3-rc1unaffected
LinuxLinux6.1.189 <= 6.1.*unaffected
LinuxLinux6.6.158 <= 6.6.*unaffected
LinuxLinux6.12.112 <= 6.12.*unaffected
LinuxLinux6.18.54 <= 6.18.*unaffected
LinuxLinux7.2.8 <= 7.2.*unaffected
LinuxLinux7.3-rc4 <= *unaffected

Weaknesses

References