
CVE-2022-21877(ストレージスペースコントローラのメモリリーク)のデモンストレーションPoC
このリポジトリは、STAR Labsで働くQuang Linhによって発見されたCVE-2022-21877のPOCを含んでいます。これはspaceport.sysドライバ内で見つかった情報漏洩です。
付属のブログ記事はこのアドレスで見つけられます。
POCをビルドするには、.\buildを実行するだけです。
実行するには、Tierを取得できるプールが必要です。私のテストでは、これは少なくとも2つのストレージプール(最初のプールともう1つ)が必要であることを意味します。最初のプールにはTierをアタッチできないからです。
必要な構成を取得するには、仮想マシンに3つの仮想ディスクをセットアップできます。これらはMicrosoftによって自動的に最初のプールとして使用されます。その後、再起動し、さらに2つの仮想ディスクを追加します。そして、管理者として以下のコマンドで2番目のプールを作成できます。
New-StoragePool -FriendlyName Pool2 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $True)
すべて設定できたら、使用可能なプールの「FriendlyName」を指定して、管理者としてPOCを起動します(例:今作成したプール)。
このPOCは、システムバッファを超えた位置にある制御されていないデータをリークすることができます。ブログ記事で説明したように、特定のカーネルオブジェクトの制御されたリークを引き起こすことはできませんでした。以下がその様子です。
