W USB Gadget, podsystem jądra LinuxWykryto lukę w zabezpieczeniach (CVE-2021-39685) w interfejsie API USB Gadget, który zapewnia interfejs programowy do tworzenia klienckich urządzeń USB i symulowania urządzeń USB. Luka ta może doprowadzić do wycieku informacji z jądra, awarii lub wykonania dowolnego kodu na poziomie jądra. Atak jest przeprowadzany przez nieuprawnionego użytkownika lokalnego poprzez manipulację różnymi klasami urządzeń zaimplementowanymi za pomocą interfejsu API USB Gadget, takimi jak rndis, hid, uac1, uac1_legacy i uac2.
Problem ten został rozwiązany w ostatnio opublikowanych aktualizacjach jądra. Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 i 4.4.295. Problem pozostaje nierozwiązany w dystrybucjach (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Przygotowano prototyp exploita w celu zademonstrowania luki.
Problem jest spowodowany przepełnieniem bufora w obsłudze żądań transferu danych w sterownikach gadżetów rndis, hid, uac1, uac1_legacy i uac2. W wyniku wykorzystania luki nieuprzywilejowany atakujący może uzyskać dostęp do pamięci jądra, wysyłając specjalne żądanie sterujące z wartością pola wLength przekraczającą rozmiar bufora statycznego, dla którego zawsze przydzielanych jest 4096 bajtów (USB_COMP_EP0_BUFSIZ). Podczas ataku możliwe jest odczytanie lub zapisanie do 65 KB danych w pamięci jądra z nieuprzywilejowanego procesu w przestrzeni użytkownika.
Źródło: opennet.ru
