Vulnerabilidad en el subsistema del kernel de Linux de USB Gadget, que potencialmente permite la ejecución de código

Se ha identificado una vulnerabilidad (CVE-2021-39685) en USB Gadget, un subsistema del kernel de Linux que proporciona una interfaz de programación para crear dispositivos cliente USB y simulación de software de dispositivos USB, que podría provocar una fuga, falla o falla del kernel. Ejecución de código arbitrario en los núcleos. El ataque lo lleva a cabo un usuario local sin privilegios mediante la manipulación de varias clases de dispositivos implementados sobre la base de la API USB Gadget, como rndis, hid, uac1, uac1_legacy y uac2.

El problema se solucionó en las actualizaciones del kernel de Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 y 4.4.295 publicadas recientemente. En las distribuciones, el problema aún no se ha solucionado (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Se ha preparado un prototipo de exploit para demostrar la vulnerabilidad.

El problema se debe a un desbordamiento del búfer en los controladores de solicitudes de transferencia de datos en los controladores de gadgets rndis, hid, uac1, uac1_legacy y uac2. Como resultado de explotar la vulnerabilidad, un atacante sin privilegios puede obtener acceso a la memoria del kernel enviando una solicitud de control especial con un valor de campo wLength que excede el tamaño del búfer estático, para el cual siempre se asignan 4096 bytes (USB_COMP_EP0_BUFSIZ). Durante el ataque, un proceso de espacio de usuario sin privilegios puede leer o escribir hasta 65 KB de datos en la memoria del kernel.

Fuente: opennet.ru

Añadir un comentario