Vulnerabilidade no subsistema kernel Linux do dispositivo USB, potencialmente permitindo a execução de código

USB Gadget, um subsistema do kernel Linux que fornece uma interface de programação para a criação de dispositivos clientes USB e software que simula dispositivos USB, tem uma vulnerabilidade (CVE-2021-39685) que pode levar ao vazamento de informações do kernel, travamento ou execução de código arbitrário nos kernels de nível. O ataque é realizado por um usuário local sem privilégios através da manipulação de diversas classes de dispositivos implementadas com base na API USB Gadget, como rndis, hid, uac1, uac1_legacy e uac2.

O problema foi corrigido nas atualizações recentemente publicadas do kernel Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 e 4.4.295. O problema permanece sem solução nas distribuições (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Um protótipo de exploração foi preparado para demonstrar a vulnerabilidade.

O problema é causado por um buffer overflow nos manipuladores de solicitação de transferência de dados nos drivers de gadget rndis, hid, uac1, uac1_legacy e uac2. Como resultado da exploração da vulnerabilidade, um invasor sem privilégios pode obter acesso à memória do kernel enviando uma solicitação de controle especial com um valor de campo wLength que excede o tamanho do buffer estático, para o qual 4096 bytes são sempre alocados (USB_COMP_EP0_BUFSIZ). Durante o ataque, um processo sem privilégios no espaço do usuário pode ler ou gravar até 65 KB de dados na memória do kernel.

Fonte: opennet.ru

Adicionar um comentário