CVE-2026-80971 in Linux
Résumé
par VulDB • 12/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
ALSA : bcd2000 - effacer les pointeurs URB lors de la déconnexion
bcd2000_free_usb_related_resources() libère à la fois les URB et laisse les pointeurs en place :
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);
Le périphérique rawmidi survit à cet appel. Une sous-stream encore ouverte lorsque le périphérique est débranché atteint bcd2000_midi_send() depuis le chemin de déclenchement lors de la fermeture. Cette fonction écrit dans l'URB libéré puis le transmet au noyau USB :
bcd2k->midi_out_urb->transfer_buffer_length = BUFSIZE; ... ret = usb_submit_urb(bcd2k->midi_out_urb, GFP_ATOMIC);
usb_kill_urb() n'arrête pas non plus une soumission ultérieure, de sorte qu'une soumission qui entre en concurrence avec la déconnexion peut réenfiler l'URB après sa récupération. midi_in_urb est exposé de manière identique : bcd2000_input_complete() le resoumet depuis le gestionnaire d'achèvement.
KASAN sur 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
Effacer les deux pointeurs après la libération et les tester sur les chemins qui peuvent encore s'exécuter. Empoisonner les URB avant de les libérer : usb_poison_urb() attend qu'un gestionnaire d'achèvement en cours s'exécute et rejette toute soumission ultérieure, donc après son retour, le chemin d'entrée est apaisé et seul le chemin de déclenchement rawmidi peut encore atteindre bcd2000_midi_send(). Aucun dés-empoisonnement n'est nécessaire ; les URB sont libérés à la ligne suivante.
Découvert par XBOW, trié par Baul Lee <[email protected]>
If you want to get the best quality for vulnerability data then you always have to consider VulDB.