CVE-2026-80971
CVE CVE-2026-80971EUVD EUVD-2026-76294Published 2026-09-11T19:42:34.000ZLast changed 2026-09-14T11:59:18.000ZCVSS 7.8
What the advisory describes
In the Linux kernel, the following vulnerability has been resolved: ALSA: bcd2000: clear the URB pointers on disconnect bcd2000_free_usb_related_resources() frees both URBs and leaves the pointers behind: usb_kill_urb(bcd2k->midi_out_urb); usb_kill_urb(bcd2k->midi_in_urb); usb_free_urb(bcd2k->midi_out_urb); usb_free_urb(bcd2k->midi_in_urb); The rawmidi device outlives that call. A substream that is still open when the device is unplugged reaches bcd2000_midi_send() from the trigger path on close. That function writes to the freed URB and then hands it to the USB core: bcd2k->midi_out_urb->transfer_buffer_length = BUFSIZE; ... ret = usb_submit_urb(bcd2k->midi_out_urb, GFP_ATOMIC); usb_kill_urb() does not stop a later submission either, so a submit that races the disconnect can requeue the URB after it has been reaped. midi_in_urb is exposed the same way: bcd2000_input_complete() resubmits it from the completion handler. KASAN on 7.2.0-rc5 (arm64): BUG: KASAN: slab-use-after-free in bcd2000_midi_send [snd_bcd2000] Write of size 4 at addr ffff00001827d388 by task bpoc/168 __asan_store4 bcd2000_midi_send [snd_bcd2000] bcd2000_midi_output_trigger [snd_bcd2000] snd_rawmidi_kernel_write1 close_substream.part.0 Freed by task 168: usb_free_urb bcd2000_disconnect [snd_bcd2000] BUG: KASAN: slab-use-after-free in usb_submit_urb Read of size 8 at addr ffff00001827d3b8 by task bpoc/168 Clear both pointers after freeing and test them on the paths that can still run. Poison the URBs before freeing them: usb_poison_urb() waits for a running completion handler and rejects any later submission, so after it returns the input path is quiesced and only the rawmidi trigger path can still reach bcd2000_midi_send(). No unpoison is needed; the URBs are freed on the next line. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Source: EUVD (ENISA), in the words of the advisory.
Products the advisory names
These come from the advisory itself, not from any check we performed.
- Linux — Linux patch: 7.2.4; patch: 0; patch: 5.15.221; patch: 6.12.109; b47a22290d581277be70e8a597824a4985d39e83 <7df3194bdb7479cad9199889655a566a2c0c1d1b; b47a22290d581277be70e8a597824a4985d39e83 <6c07aad8a7c9ef8ebc4d03a964b882123a349a2e; b47a22290d581277be70e8a597824a4985d39e83 <b06ebc7fe25a6af4a9f6e4a3d4236a4178ad4b01; b47a22290d581277be70e8a597824a4985d39e83 <9af08677aa57debaca5b57c8045c52a83d3dd376; patch: 6.18.50; patch: 6.1.188; patch: 6.6.157; 3.16; b47a22290d581277be70e8a597824a4985d39e83 <eb482a06791d6168beb8c78cc904ac5a5ed96a55; b47a22290d581277be70e8a597824a4985d39e83 <5a77febac6faf6da40fbb4555f703eeb91b58130; patch: 7.3-rc1; b47a22290d581277be70e8a597824a4985d39e83 <3c00004f134fc819f9d9e202c6a64acde0a1f8d0; patch: 5.10.270; b47a22290d581277be70e8a597824a4985d39e83 <459d3a64766f5ca2f1886daeaf24582831a5f5ab
The versions shown are the advisory's own. Patchlage compares no version numbers and derives no judgement from them — which version is installed is something a person has to look up.
Carried in the product catalogue
An estate covering these products can be recorded in Patchlage. An advisory about them appears in the next morning's situation report.
- Linux — Linux
Does this concern one of your customers?
This page cannot answer that — it does not know your estate. Whoever has recorded their environments gets the answer the morning after publication, together with a paragraph they can forward to the customer unedited.
Try it for 28 daysPatchlage reports hits and suspected hits. About everything else this system says nothing — neither this page nor the situation report ever claims that an estate is safe.