{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98316","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-25T10:25:14.339Z","datePublished":"2026-10-06T08:46:11.528Z","dateUpdated":"2026-10-06T08:46:11.528Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-10-06T08:46:11.528Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: bcd2000: Fix race between rawmidi and disconnect\n\nAlthough we tried to fix the potential UAF issues at USB disconnect on\nbcd2000 driver, there is still an overlooked case -- namely, when a\nrawmidi trigger callback has been already running at USB disconnect\nhandling, the in-flight function (e.g. bcd2000_midi_send()) could\nstill access the URB, because the previous URB NULL-check & clearance\nwas considered only for the URB complete callbacks, but not about the\nparallel rawmidi operations.\n\nFor addressing the race, this patch introduced a new spinlock that\ncovers each rawmidi operation as well as the rawmidi handling in the\ncomplete callback.  The URB is cleared with the lock, so it guarantees\nthat the pending rawmidi task already finished or a NULL check is\neffective."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/usb/bcd2000/bcd2000.c"],"versions":[{"version":"3c00004f134fc819f9d9e202c6a64acde0a1f8d0","lessThan":"3b824930259d54f5047ce6b5c97bd20db2fc2b98","status":"affected","versionType":"git"},{"version":"6c07aad8a7c9ef8ebc4d03a964b882123a349a2e","lessThan":"c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76","status":"affected","versionType":"git"},{"version":"eb482a06791d6168beb8c78cc904ac5a5ed96a55","lessThan":"0a7ecf52cb59ed77ec525deb52c496ea8fba10b1","status":"affected","versionType":"git"},{"version":"7df3194bdb7479cad9199889655a566a2c0c1d1b","lessThan":"812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0","status":"affected","versionType":"git"},{"version":"b06ebc7fe25a6af4a9f6e4a3d4236a4178ad4b01","lessThan":"9c8b6eff6e7505c128b615d9a1364ef66fa5c18e","status":"affected","versionType":"git"},{"version":"459d3a64766f5ca2f1886daeaf24582831a5f5ab","lessThan":"221253723dc58bb901c3f27a7659823e63fc598c","status":"affected","versionType":"git"},{"version":"9af08677aa57debaca5b57c8045c52a83d3dd376","status":"affected","versionType":"git"},{"version":"5a77febac6faf6da40fbb4555f703eeb91b58130","status":"affected","versionType":"git"},{"version":"6.1.188","lessThan":"6.1.189","status":"affected","versionType":"semver"},{"version":"6.6.157","lessThan":"6.6.158","status":"affected","versionType":"semver"},{"version":"6.12.109","lessThan":"6.12.112","status":"affected","versionType":"semver"},{"version":"6.18.50","lessThan":"6.18.54","status":"affected","versionType":"semver"},{"version":"7.2.4","lessThan":"7.2.8","status":"affected","versionType":"semver"},{"version":"5.10.270","lessThan":"5.11","status":"affected","versionType":"semver"},{"version":"5.15.221","lessThan":"5.16","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/usb/bcd2000/bcd2000.c"],"versions":[{"version":"7.3-rc1","status":"affected"},{"version":"0","lessThan":"7.3-rc1","status":"unaffected","versionType":"semver"},{"version":"6.1.189","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.158","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.112","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.54","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.2.8","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3-rc4","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.188","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.157","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.109","versionEndExcluding":"6.12.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.50","versionEndExcluding":"6.18.54"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.2.4","versionEndExcluding":"7.2.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.3-rc1","versionEndExcluding":"7.3-rc4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.221"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/3b824930259d54f5047ce6b5c97bd20db2fc2b98"},{"url":"https://git.kernel.org/stable/c/c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76"},{"url":"https://git.kernel.org/stable/c/0a7ecf52cb59ed77ec525deb52c496ea8fba10b1"},{"url":"https://git.kernel.org/stable/c/812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0"},{"url":"https://git.kernel.org/stable/c/9c8b6eff6e7505c128b615d9a1364ef66fa5c18e"},{"url":"https://git.kernel.org/stable/c/221253723dc58bb901c3f27a7659823e63fc598c"}],"title":"ALSA: bcd2000: Fix race between rawmidi and disconnect","x_generator":{"engine":"bippy-1.2.0"}}}}