
Simple répartiteur d'IOCTL pour CVE-2018-8060/8061
Description :
Le pilote noyau HWiNFO AMD64 version 8.98 et inférieures permet à un utilisateur non privilégié d'envoyer des IOCTL au pilote de périphérique. Si les pointeurs des tampons d'entrée et/ou de sortie sont nuls ou si les données de ces tampons sont invalides, un pointeur nul/invalide se produit, entraînant une panique du noyau Windows, aussi appelée Blue Screen.
POC :
Un utilisateur non privilégié envoie des IOCTL au périphérique symbolique « HWiNFO32 », avec des valeurs supérieures à 0x85FE2600, les données des tampons d'entrée/sortie étant arbitraires ; cela provoque un déréférencement de pointeur dans le cadre du pilote de périphérique, causant une panique du noyau. Certains cas aboutissent à CWE-476 (NULL Pointer Dereference) ou CWE-781 (Improper Address Validation in IOCTL with METHOD_NEITHER I/O Control Code)
Description :
Le pilote noyau HWiNFO AMD64 version 8.98 et inférieures permet à un utilisateur non privilégié d'envoyer un IOCTL spécial au pilote de périphérique, résultant en une lecture ou une écriture directe en mémoire physique.
POC :
Un utilisateur non privilégié envoyant un IOCTL spécial, i.e. 0x85FE2608 au périphérique symbolique « HWiNFO32 », avec un tampon d'entrée (espace utilisateur) contenant une adresse mémoire physique, une taille et une adresse mémoire virtuelle, amène le pilote à mapper la mémoire physique et à la lire, copiant son contenu vers l'adresse virtuelle.
Le fichier 8061.data est formaté de la manière suivante :