Im USB Gadget, einem Linux-Kernel-Subsystem, das eine Programmierschnittstelle für die Erstellung von Client-USB-Geräten und die simulierte Programmierung von USB-Geräten bereitstellt, wurde eine Sicherheitsanfälligkeit (CVE-2021-39685) entdeckt, die zu einer Informationsleakage aus dem Kernel, einem Absturz oder zur Ausführung von beliebigem Code auf Kernel-Ebene führen kann. Der Angriff erfolgt durch einen nicht privilegierten lokalen Benutzer, der mit verschiedenen Gerätetypen, die auf der USB Gadget API basieren, wie rndis, hid, uac1, uac1_legacy und uac2, manipuliert.
Das Problem wurde in den kürzlich veröffentlichten Updates des Linux-Kernels 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 und 4.4.295 behoben. In den Distributionen bleibt das Problem jedoch ungelöst (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Ein Proof-of-Concept-Exploit wurde zur Demonstration der Schwachstelle erstellt.
Das Problem wird durch einen Buffer-Overflow in den Anforderungsverarbeitern für Datentransfers in den Gadget-Treibern rndis, hid, uac1, uac1_legacy und uac2 verursacht. Infolgedessen kann ein unprivilegierter Angreifer durch das Senden einer speziellen Steueranforderung mit einem wLength-Wert, der die Größe des statischen Puffers von 4096 Byte (USB_COMP_EP0_BUFSIZ) überschreitet, auf den Kernspeicher zugreifen. Bei dem Angriff können bis zu 65 KB Daten aus einem unprivilegierten Prozess im Benutzerspeicher in den Kernspeicher gelesen oder geschrieben werden.
Quelle: opennet.ru
