CVE-2026-80824 in Linuxinfo

Zusammenfassung

von VulDB • 04.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

usb: usbfs: Behebung eines Use-After-Free-Fehlers für usb_device in usbdev_release()

usbdev_release() gibt seine Referenz auf die Struktur `struct usb_device` frei, bevor die Liste der abgeschlossenen asynchronen URBs (USB Request Blocks) abgearbeitet wird. Dieser Abarbeitungspfad liest jedoch wieder durch dasselbe Objekt: free_async() ruft dec_usb_memory_use_count() für jeden URB auf, dessen Puffer aus dem usbfs mmap()-Bereich stammt, und seine erste Anweisung ist bus_to_hcd(ps->dev->bus).

Nach einer Trennung kann die usbfs-Referenz die letzte sein; in diesem Fall wird das Gerät durch usb_put_dev() freigegeben, und die nachfolgende Schleife liert 80 Bytes aus dem bereits freigegebenen Speicher und verwendet das Ergebnis als `struct usb_hcd *`, was dann von hcd_buffer_free_pages() dereferenziert wird.

Dies ist für einen unprivilegierten Prozess erreichbar, der Lese-/Schreibzugriff auf einen /dev/bus/usb-Knoten hat: mmap()-Dateideskriptor einbinden, einen URB mit einem Puffer innerhalb des Mappings übermitteln, warten, bis das Gerät abgezogen wird, und anschließend munmap() sowie close() aufrufen. Der Fehler tritt bei jedem Versuch reproduzierbar auf und ist kein Race Condition-Problem, da eine aktive MAP_SHARED vma (Virtual Memory Area) eine Referenz auf die `struct file` hält; daher kann usbdev_release() nicht ausgeführt werden, bis die letzte vma entfernt wurde, und der Freigabepfad von dec_usb_memory_use_count() wird immer eingeschlagen.

BUG: KASAN: slab-use-after-free in dec_usb_memory_use_count+0x3ae/0x410 Read of size 8 at addr ffff8880122ee050 by task poc/769 CPU: 1 UID: 1000 PID: 769 Comm: poc Tainted: G B 6.12.94 #3

Call Trace: dec_usb_memory_use_count+0x3ae/0x410 free_async+0x2aa/0x4f0 usbdev_release+0x375/0x460 __fput+0x3ea/0xb50 __x64_sys_close+0x86/0x100

Allocated by task 11: usb_alloc_dev+0x55/0xd90 hub_event+0x2524/0x43d0

Freed by task 769: kfree+0x121/0x360 device_release+0xd2/0x280 usb_put_dev+0x23/0x30 usbdev_release+0x2d8/0x460

Geben Sie die Geräte-Referenz stattdessen nach der Drain-Schleife frei. Zwischen den beiden Punkten ist keine Freigabe erforderlich.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Zuständig

Linux

Reservieren

26.08.2026

Veröffentlichung

04.09.2026

Moderieren

akzeptiert

Eintrag

VDB-398905

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Interested in the pricing of exploits?

See the underground prices here!