
desbordamiento de búfer basado en pila en MsIo64.sys, Prueba de concepto de escalada de privilegios local a nt authority/system
PoC simple para explotar CVE-2021-27965 para LPE mediante la ejecución de cmd del sistema.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27965
Se descubrió un problema en el controlador firmado de Windows de MICSYS (MsIo64.sys) que puede provocar el compromiso de todo el sistema local. La rutina de despacho de ioctl del controlador sufre un desbordamiento de búfer basado en pila en todos los códigos IOCTL y además carece de validación del búfer suministrado por el usuario.
Cualquiera puede crear un identificador y enviar solicitudes ioctl a estos códigos ioctl que rompen el modelo de seguridad de Windows:
En cada código IOCTL, el controlador no accede directamente a Irp->SystemBuffer, sino que utiliza una función similar a memcpy para copiar Irp->SystemBuffer en el búfer del marco de pila de la función actual, que siempre tiene un tamaño fijo (y luego usa este búfer). Dado que tanto Irp->SystemBuffer como Irp->CurrentStackLocation->InputBufferLength están controlados por el proceso que llama, un actor malintencionado podría enviar un búfer lo suficientemente grande como para desbordar el que se encuentra dentro del marco de pila de la función. Cabe señalar: aunque en DriverEntry está __security_init_cookie(), en el despacho de ioctl falta __security_check_cookie() por alguna razón.
PENDIENTE
PENDIENTE