All vulnerabilities
CVE-2026-98316

Linux: ALSA: bcd2000: Fix race between rawmidi and disconnect

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.18%Chance of exploitation activity in the next 30 days, higher than 7% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in3b824930259d54f5047ce6b5c97bd20db2fc2b98Also 0a7ecf52cb59ed77ec525deb52c496ea8fba10b1, 812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0 and 9 moreCVE List
Published6 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 3b824930259d54f5047ce6b5c97bd20db2fc2b98LinuxCVE List
  • 0a7ecf52cb59ed77ec525deb52c496ea8fba10b1LinuxCVE List
  • 812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0LinuxCVE List
  • 9c8b6eff6e7505c128b615d9a1364ef66fa5c18eLinuxCVE List
  • 221253723dc58bb901c3f27a7659823e63fc598cLinuxCVE List
  • 5.11LinuxCVE List
Show all 12 fixed versions

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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.

Text from CVE List

Affected versions 15

  • Linuxaffected: 3c00004f134fc819f9d9e202c6a64acde0a1f8d0 before 3b824930259d54f5047ce6b5c97bd20db2fc2b98CVE List
  • Linuxaffected: 6c07aad8a7c9ef8ebc4d03a964b882123a349a2e before c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76CVE List
  • Linuxaffected: eb482a06791d6168beb8c78cc904ac5a5ed96a55 before 0a7ecf52cb59ed77ec525deb52c496ea8fba10b1CVE List
  • Linuxaffected: 7df3194bdb7479cad9199889655a566a2c0c1d1b before 812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0CVE List
  • Linuxaffected: b06ebc7fe25a6af4a9f6e4a3d4236a4178ad4b01 before 9c8b6eff6e7505c128b615d9a1364ef66fa5c18eCVE List
  • Linuxaffected: 459d3a64766f5ca2f1886daeaf24582831a5f5ab before 221253723dc58bb901c3f27a7659823e63fc598cCVE List
  • Linuxaffected: 9af08677aa57debaca5b57c8045c52a83d3dd376CVE List
  • Linuxaffected: 5a77febac6faf6da40fbb4555f703eeb91b58130CVE List
  • Linuxaffected: 5.10.270 before 5.11CVE List
  • Linuxaffected: 5.15.221 before 5.16CVE List
  • Linuxaffected: 6.1.188 before 6.1.189CVE List
  • Linuxaffected: 6.6.157 before 6.6.158CVE List
  • Linuxaffected: 6.12.109 before 6.12.112CVE List
  • Linuxaffected: 6.18.50 before 6.18.54CVE List
  • Linuxaffected: 7.2.4 before 7.2.8CVE List

References 6