
overflow del buffer basato su stack in MsIo64.sys, Proof of Concept per l'escalation dei privilegi locale a nt authority/system
Semplice PoC per sfruttare CVE-2021-27965 per LPE avviando cmd di sistema.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27965
È stato scoperto un problema nel driver Windows firmato MICSYS (MsIo64.sys) che può portare alla compromissione dell'intero sistema locale. La routine di dispatch degli ioctl del driver soffre di un overflow del buffer basato su stack in tutti i codici IOCTL e inoltre non valida il buffer fornito dall'utente.
Chiunque può creare un handle e inviare richieste ioctl a questi codici ioctl che infrangono il modello di sicurezza di Windows:
Per ogni codice IOCTL, il driver non accede direttamente a Irp->SystemBuffer ma usa piuttosto una funzione simile a memcpy per copiare Irp->SystemBuffer nel buffer del frame di stack della funzione corrente, che ha sempre una dimensione fissa (e poi usa questo buffer). Poiché sia Irp->SystemBuffer che Irp->CurrentStackLocation->InputBufferLength sono controllati dal processo chiamante, un malintenzionato potrebbe inviare un buffer abbastanza grande da causare l'overflow di quello all'interno del frame di stack della funzione. Da notare: anche se in DriverEntry è presente __security_init_cookie(), nel dispatch degli ioctl manca __security_check_cookie() per qualche motivo.
TODO
TODO