Vulnerabilidad de elevación de privilegios en Win32k (CVE-2022-21882)

Introducción

Un investigador de seguridad ha revelado públicamente un exploit para una vulnerabilidad de elevación de privilegios locales de Windows que permite a cualquiera obtener privilegios de administrador en Windows 10 [1].

Usando esta vulnerabilidad, los actores de maliciosos con acceso limitado a un dispositivo comprometido pueden elevar fácilmente sus privilegios para ayudar a extenderse lateralmente dentro de la red, crear nuevos usuarios administrativos o realizar comandos privilegiados.

La vulnerabilidad afecta a todas las versiones soportadas de Windows 10 y ya fue resuelta en parche acumulativo de Windows publicado el pasado día 11 de Enero y del cual ya informamos y recomendamos su instalación.

 

Análisis

El atacante puede llamar a la API de la interfaz gráfica de usuario relevante en el modo usuario para hacer la llamada al kernel como xxxMenuWindowProc, xxxSBWndProc, xxxSwitchWndProc, xxxTooltipWndProc, etc. Estas funciones del kernel activarán una llamada de retorno xxxClientAllocWindowClassExtraBytes. El atacante puede interceptar este callback a través del hook xxxClientAllocWindowClassExtraBytes en KernelCallbackTable, y utilizar el método NtUserConsoleControl para establecer el flag ConsoleWindow del objeto tagWND, que modificará el tipo de ventana.

Después del callback final, el sistema no comprueba si el tipo de ventana ha cambiado, y se referencian los datos erróneos debido a la confusión de tipos. La diferencia antes y después de la modificación de la flag es que antes de establecerla, el sistema piensa que tagWND.WndExtra guarda un puntero de modo de usuario; después de establecer la flag, el sistema piensa que tagWND.WndExtra es el desplazamiento de la pila del escritorio del kernel, y el atacante puede controlar este desplazamiento, y luego causar R&W fuera de los límites [2].

 

Recomendaciones

Se recomienda a los usuarios que aún no hayan instalado las actualizaciones de seguridad de enero de 2022 que lo hagan cuanto antes para evitar ataques que exploten esta vulnerabilidad [3].

 

Referencias
[1] Windows vulnerability with new public exploits lets you become admin (bleepingcomputer.com)
[2] CVE-2022-21882: Win32k Window Object Type Confusion | 0-days In-the-Wild (googleprojectzero.github.io)
[3] Security Update Guide – Microsoft