CVE-2026-31721
usb: gadget: f_hid: Verschiebe Listen- und Spinlock-Initialisierungen von bind zu alloc
- Veröffentlicht
- 01.05.2026
- Aktualisiert
- 11.05.2026
- CNA zuweisen
- Linux
- Beweise beobachtet
- 27.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HNiedrig · nächste 30 Tage
- Perzentil
- 2,7 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
Im Linux-Kernel wurde die folgende Schwachstelle behoben: usb: gadget: f_hid: Verschiebe Listen- und Spinlock-Initialisierungen von bind zu alloc Es gab ein Problem, wenn man Folgendes durchführte: - ein hid-Gadget einrichten und binden - /dev/hidg0 öffnen - den resultierenden fd in EPOLL_CTL_ADD verwenden - die UDC entbinden - die UDC binden - den fd in EPOLL_CTL_DEL verwenden Wenn CONFIG_DEBUG_LIST aktiviert war, wurde eine list_del-Korruption innerhalb von remove_wait_queue (über ep_remove_wait_queue) gemeldet. Nach einigem Debugging fand ich heraus, dass die Warteschlangen, die f_hid über poll_wait registriert, das Problem waren. Diese wurden mit init_waitqueue_head innerhalb von hidg_bind initialisiert. Effektiv hat die Bind-Funktion also die Warteschlangen neu initialisiert, während sich noch Elemente darin befanden. Die Lösung besteht darin, die Initialisierung von hidg_bind zu hidg_alloc zu verschieben, um ihre Lebensdauer auf die Lebensdauer der Funktionsinstanz auszudehnen. Zusätzlich fand ich viele weitere möglicherweise problematische Init-Aufrufe in der Bind-Funktion, die ich ebenfalls verschoben habe.
Quellen
1- f_hid-4.14-backportsPatch
Backports von drei veröffentlichten f_hid-Fixes (inkl. CVE-2026-31721, CVE-2026-31606) auf einen EOL-Linux-4.14.190-Android-Vendor-Kernel, mit Verifizierungsaufzeichnungen auf dem Gerät.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.