
una dimostrazione PoC per CVE-2022-21877 (perdita di memoria del controller di Storage Spaces)
Questo repository contiene un POC per la CVE-2022-21877, scoperto da Quang Linh, che lavora presso STAR Labs. Si tratta di una fuga di informazioni trovata all'interno del driver spaceport.sys.
Un post di blog di accompagnamento può essere trovato a questo indirizzo.
Per compilare il POC, esegui semplicemente .\build.
Per eseguirlo, è necessario un pool sulla macchina che possa ottenere un Tier. Nei miei test, ciò significa avere almeno due pool di archiviazione, quello primordiale e un altro. Tutto questo perché il pool primordiale non può avere un Tier associato.
Per ottenere la configurazione necessaria, puoi impostare 3 dischi virtuali su una macchina virtuale. Questi verranno usati automaticamente come pool primordiale da Microsoft. Puoi quindi riavviare, aggiungere altri due dischi virtuali. Puoi quindi creare il secondo pool con il seguente comando, come amministratore:
New-StoragePool -FriendlyName Pool2 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
Una volta tutto impostato, avvia il POC come amministratore fornendogli il "FriendlyName" del pool utilizzabile (ad esempio quello appena creato).
Questo POC consente di far trapelare dati non controllati situati oltre il buffer di sistema. Come spiegato nel post del blog, non sono riuscito a innescare una fuga controllata di un determinato oggetto del kernel. Ecco come appare:
