Productos y Servicios PRODUCTOS Y SERVICIOS

¡Actualización para gamers! Nvidia corrige los errores de escalamiento del kernel del driver de la GPU

Si tienes un PC o portátil con una tarjeta gráfica Nvidia (coloquialmente conocida como GPU, abreviatura de unidad de procesamiento gráfico), asegúrate de haber instalado la actualización de abril de 2021 que necesites.

Las tarjetas GPU afectadas por los errores incluyen las de las series: GeForce, RTX, Quadro, NVS y Tesla, tanto en Windows como en Linux.

Los paquetes de software de “GPU virtual” (vGPU) de Nvidia, que admiten sus GPU dentro de máquinas virtuales que utilizan software como VMWare vSphere, Citrix Hypervisor, Nutanix AHV y KVM (máquina virtual basada en kernel) de Linux, también obtienen actualizaciones en Windows y Linux.

Los parches cubren 13 CVE diferentes, que van desde CVE-2021-1074 a CVE-2021-1078 para las correcciones del controlador de GPU, y desde CVE-2021-1080 a CVE-2021-1087 para los productos vGPU.

Ejecución de código local

El error de software de la GPU que alcanzó la puntuación más alta del conocido sistema de clasificación de errores CVSS fue CVE-2021-1074, descrito como una “vulnerabilidad en el instalador [controlador de GPU] donde un atacante con acceso al sistema local puede reemplazar un recurso de la aplicación con archivos maliciosos”.

Nvidia no da muchos detalles más sobre este error, pero cuando aparecen vulnerabilidades de este tipo en el instalador, a menudo se deben a una de estas dos cosas:

  • Una DLL que ejecuta el instalador cuando se carga. DLL es la abreviatura de biblioteca de enlace dinámico, una especie de componente adicional del programa que se entrega en un archivo ejecutable separado con una extensión .DLL en lugar de estar integrado en el archivo .EXE principal. Si un delincuente puede sustituir un archivo DLL, el instalador puede usarlo en lugar del adecuado.
  • Un script de instalación que brinda instrucciones personalizadas al instalador. Si el lenguaje del script de instalación da control sobre la copia y reemplazo de archivos o puede especificar programas externos para que se ejecuten en el momento de la instalación o actualización, un ciberdelincuente puede engañar al instalador para que realice actividades maliciosas sin necesidad de un archivo .DLL o .EXEL nuevo y de apariencia sospechosa.

Aunque las vulnerabilidades de este tipo se consideran serias, en realidad son difíciles de prevenir, dado que los atacantes que quieren explotarlas normalmente necesitan acceso de escritura al disco duro.

En otras palabras, un atacante que pudiera introducir una DLL o un archivo de script malicioso para que el instalador lo inicie probablemente podría simplemente ejecutar el archivo malicioso directamente de todos modos, o reemplazar el propio instalador con malware.

Sin embargo, las utilidades de instalación deben reforzarse tanto como sea posible contra este tipo de ataque, porque:

  • Cuando los componentes maliciosos son ejecutados por un archivo .EXE confiable, se esconden efectivamente a “plena vista”, con la bendición implícita de (y en el mismo espacio de memoria que) el programa de instalación oficial.
  • El instalador original es el componente más probable que un usuario bien informado verifique, por ejemplo, mirando la firma digital antes de ejecutarlo. Por lo tanto, si el archivo principal no se modifica en un ataque de este tipo, pasará muchas de las comprobaciones estáticas que se podrían usar para validarlo.
  • Cualquier solicitud UAC que pida que apruebes “privilegios de actualización” de tiempo de ejecución adicionales vendrá del instalador oficial. UAC es la abreviatura de control de cuentas de usuario, y es el responsable de Windows que informa y solicita permiso para operaciones en todo el sistema, como instalaciones y actualizaciones de software, incluso (¡especialmente!) si eres un administrador.

Superpoderes

Igual de preocupante, en nuestra opinión, aunque con una puntuación CVSS más baja, es el error CVE‑2021‑1075 en uno de los controladores del kernel de Nvidia.

Esta vulnerabilidad se describe de la siguiente manera: “el programa elimina la referencia de un puntero que contiene una ubicación para la memoria que ya no es válida, lo que puede provocar la ejecución de código, la denegación de servicio o la escalada de privilegios”.

Este tipo de error a menudo se conoce en la jerga como una vulnerabilidad use-after-free, porque el comando del sistema free() es comúnmente la función a la que se llama cuando se desea invalidar y devolver la memoria que tu programa no pretende usar de nuevo.

Y la ejecución de código no autorizado en el kernel generalmente significa un gran problema porque a menudo proporciona una forma para que un usuario normal se otorgue superpoderes en todo el sistema, sin necesidad de conocer o adivinar la contraseña de administrador.

En otras palabras, los delincuentes que ya han accedido a un ordenador probablemente podrían hacer mucho más daño con CVE‑2021‑1075 que con CVE-2021-1074.

Esto se debe a que CVE-2021-1074 podría permitir que los delincuentes ejecuten comandos indirectamente que probablemente ya podrían ejecutar de todos modos, aunque de manera más obvia, mientras que CVE-2021-1075 podría darles acceso a utilidades de administración de sistemas que de otro modo estarían lejos de su alcance.

Escapes virtuales

Los errores de vGPU incluyen una serie de vulnerabilidades que, según Nvidia, podrían “conducir a la divulgación de información y la manipulación de datos”, problemas que definitivamente son motivo de preocupación.

Una máquina virtual, o VM, es una especie de ordenador simulado de software conocido como guest que puede coexistir con otras VM en el mismo hardware físico, conocido como host.

Una de las premisas de seguridad en las que se confía cuando se utiliza máquinas virtuales es que el software de virtualización debe mantener las máquinas virtuales invitadas separadas entre sí al menos con la misma eficacia que ejecutar cada máquina virtual en su propio ordenador dedicado independiente.

Del mismo modo, aunque quieres que el sistema operativo host pueda controlar y administrar las VM invitadas, esperas que este flujo de control no funcione en la otra dirección.

Ninguna VM operativa invitada debería poder interactuar con otros invitados, que podrían estar ejecutando software para otros departamentos dentro de la empresa o incluso software de alojamiento para varios clientes diferentes, y ningún invitado debería poder realizar cambios no autorizados en el sistema operativo host que lo controla.

Como puedes imaginar, un escape guest-to-host, como se le conoce habitualmente, también facilita la manipulación guest-to-guest, dado que una vez que los atacantes han escapado al host, pueden hacer un mal uso del host para introducirse en los otros guest que se están ejecutando en él.

Por lo tanto, siempre es importante parchear los errores de virtualización que podrían permitir que los datos se filtren entre partes del sistema que se supone deben mantenerse estrictamente separadas.

¿Qué hacer?

Como siempre ¡parchea rápido, parchea a menudo!

Nvidia tiene una lista de productos afectados más los números de versión de controlador actualizados, así como instrucciones sobre cómo averiguar qué versiones de su software de controlador ya están instaladas.

Por cierto, si te preguntabas que pasó con el número de error que falta, CVE-2021-1079, de las secuencias enumeradas anteriormente, la respuesta es que se asignó a un problema en el software Nvidia GeForce Experience, no a ningún error en los controladores de GPU o Paquetes de vGPU.

Si usas GeForce Experience, el error que se corrigió podría provocar la ejecución del código o la elevación de privilegios, por lo que también debes parchear ese software, como se explica en un boletín de seguridad de Nvidia diferente.

Dejar un comentario

Your email address will not be published. Required fields are marked *