
une preuve de concept de démonstration pour CVE-2022-21877 (fuite de mémoire du contrôleur d’espaces de stockage)
Ce dépôt contient un POC pour le CVE-2022-21877, trouvé par Quang Linh, travaillant chez STAR Labs. Il s'agit d'une fuite d'informations trouvée dans le pilote spaceport.sys.
Un article de blog d'accompagnement peut être trouvé à cette adresse.
Pour construire le POC, exécutez simplement .\build.
Pour l'exécuter, vous avez besoin d'un pool sur votre machine qui peut obtenir un Tier. Dans mes tests, cela signifie avoir au moins deux pools de stockage, le pool primordial et un autre. Tout cela parce que le pool primordial ne peut pas avoir de Tier attaché.
Pour obtenir la configuration nécessaire, vous pouvez configurer 3 disques virtuels sur une machine virtuelle. Ceux-ci seront automatiquement utilisés comme pool primordial par Microsoft. Vous pouvez ensuite redémarrer, ajouter deux autres disques virtuels. Vous pouvez ensuite créer le deuxième pool avec la commande suivante, en tant qu'administrateur :
New-StoragePool -FriendlyName Pool2 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
Une fois tout configuré, lancez le POC en tant qu'administrateur en lui fournissant le « FriendlyName » du pool utilisable (par exemple celui que vous venez de créer).
Ce POC permet de fuiter des données non contrôlées situées après le tampon système. Comme expliqué dans l'article de blog, je n'ai pas été capable de déclencher une fuite contrôlée d'un objet noyau donné. Voici à quoi cela ressemble :
