
uma demonstração de PoC para CVE-2022-21877 (vazamento de memória do controlador do Storage Spaces)
Este repositório contém um POC para o CVE-2022-21877, encontrado por Quang Linh, trabalhando na STAR Labs. Trata-se de um vazamento de informações encontrado no driver spaceport.sys.
Um post de blog acompanhante pode ser encontrado neste endereço.
Para compilar o POC, execute .\build.
Para executá-lo, você precisa de um pool na sua máquina que possa obter um Tier. Nos meus testes, isso significa ter pelo menos dois pools de armazenamento, o primordial e um outro. Tudo isso porque o pool primordial não pode ter um Tier anexado.
Para obter a configuração necessária, você pode configurar 3 discos virtuais em uma máquina virtual. Eles serão usados automaticamente como o pool primordial pela Microsoft. Você pode então reinicializar, adicionar mais dois discos virtuais. Em seguida, você pode criar o segundo pool com o seguinte comando, como administrador:
New-StoragePool -FriendlyName Pool2 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
Uma vez configurado, execute o POC como administrador fornecendo o "FriendlyName" do pool utilizável (por exemplo, o que você acabou de criar).
Este POC permite vazar dados não controlados localizados após o buffer do sistema. Conforme explicado no post do blog, não consegui acionar um vazamento controlado de um objeto específico do kernel. Aqui está como se parece:
