
Простой диспетчер IOCTL для CVE-2018-8060/8061
Описание:
Драйвер ядра HWiNFO AMD64 версии 8.98 и ниже позволяет непривилегированному пользователю отправлять IOCTL драйверу устройства. Если указатели входного и/или выходного буфера равны null или данные этих буферов недействительны, возникает нулевой/недействительный указатель, что приводит к панике ядра Windows, также известной как «синий экран».
POC:
Непривилегированный пользователь отправляет некоторые IOCTL-запросы символьному устройству «HWiNFO32» со значением выше 0x85FE2600, при этом данные входного/выходного буфера произвольны; это приводит к разыменованию указателя в контексте драйвера устройства и вызывает панику ядра. В некоторых случаях это приводит к CWE-476 (NULL Pointer Dereference) или CWE-781 (Improper Address Validation in IOCTL with METHOD_NEITHER I/O Control Code)
Описание:
Драйвер ядра HWiNFO AMD64 версии 8.98 и ниже позволяет непривилегированному пользователю отправлять специальный IOCTL драйверу устройства, что приводит к прямому чтению или записи физической памяти.
POC:
Непривилегированный пользователь отправляет специальный IOCTL, например 0x85FE2608, символьному устройству «HWiNFO32», при этом входной буфер (в пользовательском пространстве) содержит адрес физической памяти, размер и адрес виртуальной памяти. В результате драйвер отображает физическую память, читает её и копирует содержимое в виртуальный адрес.
Файл 8061.data имеет следующий формат: