
estouro de buffer baseado em pilha no MsIo64.sys, Prova de Conceito de Escalação de Privilégio Local para nt authority/system
PoC simples para explorar CVE-2021-27965 para LPE gerando cmd do sistema.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27965
Um problema foi descoberto no driver Windows assinado MICSYS (MsIo64.sys) que pode levar ao comprometimento de todo o sistema local. A rotina de dispatch ioctl do driver sofre de um estouro de buffer baseado na pilha em códigos IOCTL all e também carece de validação do buffer fornecido pelo usuário.
Qualquer pessoa pode criar um handle e emitir requisições ioctl para esses códigos ioctl, que quebram o modelo de segurança do Windows:
Em cada código IOCTL, o driver não acessa Irp->SystemBuffer diretamente, mas sim usa uma função semelhante a memcpy para copiar Irp->SystemBuffer para o buffer do quadro de pilha da função atual, que sempre tem tamanho fixo (e então usa esse buffer). Como tanto Irp->SystemBuffer quanto Irp->CurrentStackLocation->InputBufferLength são controlados pelo processo chamador, um ator malicioso poderia enviar um buffer grande o suficiente para estourar o buffer interno do quadro de pilha da função. A notar: Mesmo que no DriverEntry haja __security_init_cookie(), no dispatch ioctl __security_check_cookie() está ausente por algum motivo.
TODO
TODO