
2026年7月に修正されたWindows WalletServiceの脆弱性に対するローカル権限昇格の概念実証。
2026年7月に修正された Windows WalletService の脆弱性に対する、ローカル権限昇格の概念実証です。
技術解説: CVE-2026-49176 Exploit Development: WalletService to SYSTEM。
標準ユーザーが、永続化されたコールバックを含む Wallet ESE データベースを作成し、自身の Documents 既知フォルダーをそのデータベースへリダイレクトします。脆弱な WalletService は、永続化コールバックを有効にした状態でデータベースを LocalSystem として開くため、ESE が指定された DLL を読み込みます。ペイロードは、アクティブなデスクトップセッション内で SYSTEM としてコマンドプロンプトを起動します。
脆弱な Windows 11 システム上で、昇格していない PowerShell を開き、次を実行します:
powershell.exe -ExecutionPolicy Bypass -File .\trigger.ps1
あるいは、run.cmd をダブルクリックします。シェルが開き、nt authority\system と表示されるはずです。
同梱のバイナリを再ビルドするには、Visual Studio C++ ビルドツールをインストールし、次を実行します:
powershell.exe -ExecutionPolicy Bypass -File .\build.ps1
Windows 11 25H2 ビルド 26200.8737 でテスト済みです。
WalletService は、呼び出し元を偽装している間に FOLDERID_Documents を解決し、その後 <Documents>\Wallet\wallet.db を開く前に LocalSystem に戻ります。呼び出し元が作成したデータベースを受け入れ、ESE の永続化コールバックを有効にします。Cards テーブルを開くと、データベーススキーマに保存されたコールバックパスが解決され、指定された DLL が SYSTEM として読み込まれます。