Andrey Konovalov dio a conocer otros 15 errores mas en los controladores USB del Kernel de Linux

diciembre 04, 2019 , 0 Comments

Linux USB

Andrey Konovalov un investigador de seguridad de Google publicó hace poco un informe sobre la identificación de 15 vulnerabilidades (CVE-2019-19523 – CVE-2019-19537) en los controladores USB que se ofrecen en el kernel de Linux. Esta es la tercera parte de los problemas encontrados durante las pruebas fuzzing de la pila USB en el paquete syzkaller que anteriormente, este investigador ya había informado de 29 vulnerabilidades y de las cuales ya habíamos comentado aquí en el blog.

Los problemas que anteriormente se habían dado a conocer, en ellos describe el investigador de seguridad que se pueden explotar estos errores potencialmente cuando se conectan dispositivos USB especialmente preparados en una computadora.

Un ataque es posible si hay acceso físico al equipo y puede provocar al menos un bloqueo del Kernel, pero no se excluyen otras manifestaciones (por ejemplo, para una vulnerabilidad similar identificada en 2016, el controlador USB snd-usbmidi logró preparar un exploit para ejecutar código a nivel del kernel).

En este nuevo informe de Andrey Konovalov, la lista incluye solo vulnerabilidades causadas por el acceso a áreas de memoria ya liberadas (use-after-free) o que conducen a la fuga de datos de la memoria del kernel.

Los problemas que pueden usarse para la denegación de servicio no se incluyen en el informe. Las vulnerabilidades podrían explotarse potencialmente cuando se conectan dispositivos USB especialmente preparados a una computadora. Las correcciones para todos los problemas mencionados en el informe ya están incluidas en el núcleo, pero algunos errores que no están incluidos en el informe aún no están corregidos.

Más errores en los controladores USB del kernel de Linux que pueden activarse por un dispositivo USB malicioso externo fueron encontrados con syzkaller… Todos estos errores se han corregido en sentido ascendente (pero muchos otros errores de syzbot USB todavía no están corregidos).

Las vulnerabilidades más peligrosas de usar después de liberar que podrían conducir a la ejecución de código de ataque se han corregido en los controladores adutux, ff-memless, ieee802154, pn533, hiddev, iowarrior, mcba_usb y yurex.

Bajo CVE-2019-19532, se resumen 14 vulnerabilidades adicionales en los controladores HID debido a errores que permiten escribir fuera de los límites. Los controladores ttusb_dec, pcan_usb_fd y pcan_usb_pro encontraron problemas que conducen a la fuga de datos desde la memoria del kernel. El código de pila USB para trabajar con dispositivos de caracteres ha identificado un problema (CVE-2019-19537) causado por una condición de carrera.

CVE-2019-19523

En el kernel de Linux anterior a 5.3.7, hay un error de uso que puede ser causado por un dispositivo USB malicioso en drivers/usb/misc/adutux.c, también conocido como CID-44efc269db79.

CVE-2019-19524

En el kernel de Linux anterior a 5.3.12, hay un error de uso que puede ser causado por un dispositivo USB malicioso en /input/ff-memless.c driver, también conocido como CID-fa3a5a1880c9.

CVE-2019-19532

En el kernel de Linux anterior a 5.3.9, hay múltiples fuera de límites escribir errores que pueden ser causados ​​por un dispositivo USB malicioso en Linux controladores HID del núcleo, también conocidos como CID-d9d4b1e46d95. Esto afecta

drivers/hid/hid-axff.c, drivers/hid/hid-dr.c, drivers/hid/hid-emsff.c

drivers/hid/hid-gaff.c, drivers/hid/hid-holtekff.c

drivers/hid/hid-lg2ff.c, drivers/hid/hid-lg3ff.c

drivers/hid/hid-lg4ff.c, drivers/hid/hid-lgff.c

drivers/hid/hid-logitech-hidpp.c, drivers/hid/hid-microsoft.c

drivers/hid/hid-sony.c, drivers/hid/hid-tmff.c

drivers/hid/hid-zpff.c.

También podemos observar la identificación de cuatro vulnerabilidades (CVE-2019-14895, CVE-2019-14896, CVE-2019-14897, CVE-2019-14901) en el controlador para chips inalámbricos Marvell, lo que puede provocar un desbordamiento del búfer.

Se puede realizar un ataque de forma remota enviando marcos enmarcados de cierta manera cuando se conecta al punto de acceso inalámbrico de un atacante. La amenaza más probable es una denegación remota de servicio (bloqueo del kernel), pero no se descarta la posibilidad de ejecutar código en el sistema.

De momento los problemas que siguen sin corregirse que ya fueron dados a conocer ya hace varios dias en las distribuciones (Debian, Ubuntu, Fedora, RHEL, SUSE) ya se encuentran trabajando en corregir los errores.  Aun que ya se ha propuesto un parche para su inclusión en el Kernel de Linux para las próximas versiones.

Si quieres conocer más al respecto sobre los errores encontrados, puedes consultar la publicación original en el siguiente enlace y este otro enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.