
Semplice dispatcher IOCTL per CVE-2018-8060/8061
Descrizione:
Il driver del kernel AMD64 HWiNFO versione 8.98 e precedenti consente a un utente non privilegiato di inviare IOCTL al driver del dispositivo. Se i puntatori del buffer di input e/o output sono nulli o se i dati di questi buffer non sono validi, si verifica un puntatore nullo/non valido, causando un kernel panic di Windows, noto come Blue Screen.
POC:
Un utente non privilegiato invia alcuni IOCTL, al dispositivo simbolico "HWiNFO32", superiori a 0x85FE2600 con dati del buffer di input/output arbitrari, provocando un dereferenziamento del puntatore nell'ambito del driver del dispositivo; causando un kernel panic. In alcuni casi si verifica CWE-476 (Dereferenziamento del puntatore NULL) o CWE-781 (Validazione dell'indirizzo impropria in IOCTL con codice di controllo I/O METHOD_NEITHER)
Descrizione:
Il driver del kernel AMD64 HWiNFO versione 8.98 e precedenti consente a un utente non privilegiato di inviare un IOCTL speciale al driver del dispositivo, causando lettura o scrittura diretta della memoria fisica.
POC:
Un utente non privilegiato che invia un IOCTL speciale, ad esempio 0x85FE2608 al dispositivo simbolico "HWiNFO32", con il buffer di input (spazio utente) contenente un indirizzo di memoria fisica, una dimensione e un indirizzo di memoria virtuale, fa sì che il driver mappi la memoria fisica e la legga, copiando il suo contenuto all'indirizzo virtuale.
Il file 8061.data è formattato in questo modo: