Encontraron un fallo en el controlador rtlwifi que afecta al Kernel de Linux

octubre 18, 2019 , 0 Comments

 

vulnerabilidadRecientemente se dio a conocer un fallo en el controlador “rtlwifi” que se encuentra incluido en el kernel de Linux para adaptadores inalámbricos basados en chips Realtek, esté ya esta catalogado en la vulnerabilidad (CVE-2019-17666). Y es que este fallo podría ser explotado para organizar la ejecución del código en el contexto del Kernel al enviar marcos especialmente diseñados.

La vulnerabilidad es causada por un desbordamiento del búfer en el código con la implementación del modo P2P (Wifi-Direct). Al analizar cuadros NoA (Aviso de ausencia), no hay verificación del tamaño de uno de los valores, lo que hace posible escribir la cola de datos en el área fuera del borde del búfer y reescribir la información en las estructuras del núcleo que siguen al búfer.

Ese exceso de datos a su vez corrompe el espacio cercano en la memoria y podría alterar otros datos, abriendo la puerta a ataques maliciosos. Esta falla específica podría permitir a los atacantes lanzar una variedad de ataques, desde el bloqueo de máquinas Linux vulnerables hasta la adquisición completa.

Se puede atacar enviando marcos especialmente diseñados a un sistema con un adaptador de red activo basado en un chip Realtek con soporte para tecnología Wi-Fi Direct, que permite que dos adaptadores inalámbricos establezcan una conexión directamente sin un punto de acceso.

Para explotar el problema, no se requiere la conexión de un atacante a la red inalámbrica y no se requiere ninguna acción del usuario; es suficiente solo con que el atacante se encuentre dentro del área de cobertura de la señal inalámbrica del objetivo.

La parte vulnerable del controlador rtlwifi es una característica llamada el protocolo de Aviso de Ausencia. Este protocolo ayuda a los dispositivos a apagar su radio de manera autónoma para ahorrar energía. La falla existe en la forma en que el controlador maneja los paquetes de Aviso de Ausencia: no verifica que ciertos paquetes tengan una longitud compatible, por lo que un atacante podría agregar elementos de información específicos que causarían el bloqueo del sistema.

“El error es grave”, dijo Ars Nico Waisman, que es ingeniero de seguridad principal en Github. “Es una vulnerabilidad que desencadena un desbordamiento de forma remota a través de Wi-Fi en el kernel de Linux, siempre que esté utilizando el controlador Realtek (RTLWIFI)”.

“Encontré este error el lunes. Un desbordamiento en el controlador linux rtlwifi en P2P (Wifi-Direct), al analizar cuadros de Aviso de Ausencia. El error ha existido durante al menos 4 años ”, explicó Waisman en Twitter.

El prototipo funcional del exploit está limitado hasta ahora a una llamada de bloqueo del kernel remoto, pero la vulnerabilidad potencial no excluye la posibilidad de organizar la ejecución del código (el supuesto es solo teórico, ya que todavía no existe un exploit prototipo para ejecutar el código, pero el investigador que descubrió el problema ya está trabajando en su creación).

“Todavía estoy trabajando en la explotación, y definitivamente … tomará algo de tiempo (por supuesto, podría no ser posible)”, escribió en un mensaje directo. “En el papel, esto es un desbordamiento que debería ser explotable. En el peor de los casos, esto es una denegación de servicio; en el mejor de los casos, obtienes un shell”. dijo Ars Nico Waisman

Es importante tomar en cuenta que la vulnerabilidad solo afecta a los dispositivos Linux que usan un chip Realtek cuando el Wi-Fi está activado. La falla no se puede explotar si el Wi-Fi está apagado o si el dispositivo usa un chip Wi-Fi de otro fabricante.

Este problema no es nuevo, ya que aparece desde el Kernel de Linux 3.12 (aun que según otras fuentes, el problema aparece desde el Kernel de Linux 3.10 ), lanzado en 2013. También comentan que es probablemente la vulnerabilidad también afecta a la plataforma Android.

La solución actualmente solo está disponible como un parche. En distribuciones, el problema permanece sin corregir.

Para quienes este interesados en dar seguimiento a la solución. Pueden hacer un seguimiento de la eliminación de vulnerabilidades en las distribuciones en estas páginas: Debian, SUSE/openSUSE, RHEL, Ubuntu.


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.