CVE-2026-90024 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
usb: gadget: midi2: Behebung der Nullzeiger-Dereferenzierung in f_midi2_free_ep_reqs
Eine Nullzeiger-Dereferenzierung tritt in `f_midi2_free_ep_reqs()` auf, wenn versucht wird, einen Endpunkt zu bereinigen, der niemals initialisiert wurde.
Bei der Konfiguration des MIDI-2.0-Gadgets über configfs und dem Festlegen der Blockrichtung auf SNDRV_UMP_DIR_INPUT wird die Initialisierung des midi1_ep_out-Endpunkts während der Gadget-Bindungsphase (`f_midi2_bind()`) explizit übersprungen. Infolgedessen bleibt das Feld `usb_ep->card` NULL.
Später, wenn der Host den alternativen Setting-Wert festlegt, stoppt `f_midi2_set_alt()` bedingungslos sowohl die IN- als auch die OUT-Endpunkte durch Aufruf von `f_midi2_stop_eps()`, was wiederum `f_midi2_free_ep_reqs()` für beide Endpunkte aufruft. Wenn `f_midi2_free_ep_reqs()` für den nicht initialisierten midi1_ep_out aufgerufen wird, versucht es, auf `usb_ep->card` zu dereferenzieren, um die Anzahl der freizugebenden Anfragen (Requests) zu bestimmen, was zum Absturz führt.
Behoben wird dies durch die Verwendung von `usb_ep->num_reqs` anstelle von `usb_ep->card->info.num_reqs` in `f_midi2_free_ep_reqs()`. `usb_ep->num_reqs` wird korrekt während `f_midi2_init_ep()` festgelegt und bleibt 0, wenn der Endpunkt niemals initialisiert wurde, wodurch die Schleife sicher vermieden wird. Aus Konsistenzgründen wird dieselbe Änderung auch auf `f_midi2_alloc_ep_reqs()` angewendet.
Oops: general protection fault, wahrscheinlich für nicht-kanonische Adresse 0xdffffc00000000ee: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref im Bereich [0x0000000000000770-0x0000000000000777]
... RIP: 0010:f_midi2_free_ep_reqs drivers/usb/gadget/function/f_midi2.c:1166 [inline]
RIP: 0010:f_midi2_stop_eps+0x28e/0x4d0 drivers/usb/gadget/function/f_midi2.c:1246 ... Call Trace: <TASK> f_midi2_set_alt+0x11c/0xf00 drivers/usb/gadget/function/f_midi2.c:1296 composite_setup+0x1ffd/0x3480 drivers/usb/gadget/composite.c:1933 configfs_composite_setup+0xbd/0x100 drivers/usb/gadget/configfs.c:1877
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.