Uma vulnerabilidade (CVE-2021-39685) foi identificada no USB Gadget, subsystema do núcleo Linux que fornece uma interface de programação para a criação de dispositivos USB clientes e simulação de dispositivos USB, que pode resultar em vazamento de informações do núcleo, falhas ou execução de código arbitrário no nível do núcleo. O ataque é realizado por um usuário local não privilegiado, manipulando várias classes de dispositivos implementadas na API USB Gadget, como rndis, hid, uac1, uac1_legacy e uac2.
O problema foi corrigido nas atualizações recentes do núcleo Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 e 4.4.295. Nos distribuições, o problema ainda permanece sem correção (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Um protótipo de exploit foi preparado para demonstrar a vulnerabilidade.
O problema é causado por um estouro de buffer nos manipuladores de solicitações de transmissão de dados nos drivers do gadget rndis, hid, uac1, uac1_legacy e uac2. Como resultado da exploração da vulnerabilidade, um atacante não privilegiado pode acessar a memória do núcleo enviando uma solicitação de controle especial com um valor no campo wLength que excede o tamanho do buffer estático, para o qual sempre são alocados 4096 bytes (USB_COMP_EP0_BUFSIZ). Durante o ataque, é possível ler ou escrever até 65 KB de dados na memória do núcleo a partir de um processo não privilegiado no espaço do usuário.
Fonte: opennet.ru
