In USB Gadget, een subsysteem van de Linux-kernel dat een programmatische interface biedt voor het creëren van client USB-apparaten en softwarematige simulatie van USB-apparaten, is een kwetsbaarheid vastgesteld (CVE-2021-39685). Deze kwetsbaarheid kan leiden tot informatielekken uit de kernel, crashes of het uitvoeren van willekeurige code op kernelniveau. De aanval wordt uitgevoerd door een niet-geprivilegieerde lokale gebruiker via manipulatie met verschillende apparaatsklassen die zijn geïmplementeerd op basis van de USB Gadget API, zoals rndis, hid, uac1, uac1_legacy en uac2.
Het probleem is opgelost in de onlangs gepubliceerde updates voor de Linux-kernel 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 en 4.4.295. In de distributies blijft het probleem voorlopig onopgelost (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Er is een prototype-exploit voor de demonstratie van de kwetsbaarheid voorbereid.
Het probleem wordt veroorzaakt door een bufferoverloop in de gegevensoverdracht request handlers in de gadgetdrivers rndis, hid, uac1, uac1_legacy en uac2. Als gevolg van de uitbuiting van de kwetsbaarheid kan een niet-geprivilegieerde aanvaller toegang krijgen tot de kernelgeheugen door het verzenden van een speciaal controleverzoek met een waarde voor het veld wLength, die groter is dan de grootte van de statische buffer, waarvoor altijd 4096 bytes worden gereserveerd (USB_COMP_EP0_BUFSIZ). Tijdens de aanval kan tot 65 KB aan gegevens in de kernelgeheugen worden gelezen of geschreven vanuit een niet-geprivilegieerd proces in de gebruikersruimte.
Bron: opennet.ru
