
vskrnlintvsp.sys における整数切り捨てによる LPE(ローカル権限昇格)
このCVEのエクスプロイトの最初のバージョンは、https://github.com/MrAle98/CVE-2025-21333-POC/tree/master にあります。私はMrAle98氏が作成したものに触発されて、この新しいエクスプロイトを作成しました。 これは、GUIDを取得するためにWindowsサンドボックスプロセスを開かないため、より安定しており、少し粗削りです。サンドボックスプロセスのGUIDを取得するために、Microsoft Defender Application Gaurd(MDAG) apiを使用しました。
MrAle98氏が使用したIoRingスプレーを試しましたが、IoRingの初期セットアップを行った後、SubmitIoRingを一度に実行してもうまくいきませんでした。理由はわかりませんが、
チャンクを割り当てるIopIoRingDispatchRegisterBuffers関数内のProbeForWrite関数で例外エラーが発生していました。そこで、パイプ属性を試し、次にキューエントリを試す方法に切り替えました。パイプ属性を使用して任意読み取りはできましたが、今度は任意書き込みを取得するためにキューエントリが機能しませんでした。そこで、スプレー中にSubmitIoRingとセットアップ作業を行うという別の方法でIoRingを使うアイデアを思いつきました。これは機能し、スレッド優先度をtime criticalに設定するだけでした。
PagedPool内で最小サイズ0x20のIoRing mc buffer entryを使ったスプレーは、本当に素晴らしいオブジェクトです。MrAle98氏に感謝します。
彼のブログはこちら: ブログ
msrc: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21333