Sicherheitsanfälligkeit im USB-Gadget-Subsystem des Linux-Kernels, die potenziell die Ausführung von Code ermöglicht

Im USB-Gadget, einer Subsystem des Linux-Kernels, die eine Programmierschnittstelle zur Erstellung von Client-USB-Geräten und zur Software-Simulation von USB-Geräten bereitstellt, wurde eine Schwachstelle (CVE-2021-39685) entdeckt, die zu einem Informationsleck aus dem Kernel, zu Abstürzen oder zur Ausführung willkürlichen Codes auf Kernel-Ebene führen kann. Ein nicht privilegierter lokaler Benutzer kann durch Manipulation mit verschiedenen Geräteklassen, die auf der API USB Gadget basieren, wie rndis, hid, uac1, uac1_legacy und uac2, angreifen.

Das Problem wurde in den kürzlich veröffentlichten Updates für die Linux-Kernel 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 weiterhin ungelöst (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Ein Prototyp eines Exploits wurde zur Demonstration der Schwachstelle vorbereitet.

Das Problem wurde durch einen Buffer-Overrun in den Datenübertragungsanfragen der Gadget-Treiber rndis, hid, uac1, uac1_legacy und uac2 verursacht. Durch die Ausnutzung dieser Schwachstelle kann ein nicht privilegierter Angreifer auf den Kernel-Speicher zugreifen, indem er eine spezielle Steueranfrage mit einem wLength-Feld sendet, das die Größe des statischen Buffers überschreitet, für den immer 4096 Byte (USB_COMP_EP0_BUFSIZ) reserviert werden. Im Verlauf des Angriffs können bis zu 65 KB Daten aus einem nicht privilegierten Prozess im Benutzerspeicher in den Kernel-Speicher gelesen oder geschrieben werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4