
Sencillo despachador de IOCTL para CVE-2018-8060/8061
Descripción:
El controlador de kernel HWiNFO AMD64 versión 8.98 e inferior permite que un usuario sin privilegios envíe IOCTL al controlador del dispositivo. Si los punteros del búfer de entrada y/o salida son nulos o si los datos de estos búferes no son válidos, se produce un puntero nulo/inválido, lo que resulta en un pánico del kernel de Windows, también conocido como Blue Screen.
POC:
Un usuario sin privilegios envía algunos IOCTL, al dispositivo simbólico "HWiNFO32", mayores que 0x85FE2600 con datos arbitrarios en el búfer de entrada/salida, lo que resulta en una desreferencia de puntero dentro del ámbito del controlador del dispositivo; causando un pánico del kernel. En algunos casos resulta en CWE-476 (Desreferencia de puntero nulo) o CWE-781 (Validación incorrecta de direcciones en IOCTL con código de control de E/S METHOD_NEITHER)
Descripción:
El controlador de kernel HWiNFO AMD64 versión 8.98 e inferior permite que un usuario sin privilegios envíe un IOCTL especial al controlador del dispositivo, lo que resulta en una lectura o escritura directa de la memoria física.
POC:
Un usuario sin privilegios envía un IOCTL especial, p. ej. 0x85FE2608, al dispositivo simbólico "HWiNFO32", con el búfer de entrada (espacio de usuario) que contiene una dirección de memoria física, un tamaño y una dirección de memoria virtual; esto hace que el controlador mapee la memoria física y la lea, copiando su contenido a la dirección virtual.
El archivo 8061.data tiene el siguiente formato: