
私は、現在 CVE-2026-50343 として追跡されているこの脆弱性を独自に発見し、報告しました。MSRC は、私の提出物が別の研究者による以前の報告の重複であることを確認しました。標準的な対話型ユーザーは、攻撃者が制御するプラグイン状態を HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State 配下に書き込むことができます。Microsoft Store インストールサービスは NT AUTHORITY\SYSTEM として実行され、PlugInList と StaticPluginMap を読み取り、公開された AppInstallManager.SearchForAllUpdatesAsync() トリガーの後にマップされた DLL を読み込みます。その結果、ローカルの標準ユーザーから SYSTEM へのコード実行が可能になります。
| CVE | CVE-2026-50343 |
| MSRC ケース | 120271 / VULN-192719 |
| MSRC ステータス | 以前の研究者の報告の重複として確認済み |
| Microsoft 深刻度 | 重要 |
| Microsoft CVSS | 7.8 高 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| バグ分類 | 不適切なレジストリ ACL / 特権 DLL 読み込み |
| 根本原因 | 標準ユーザーが、SYSTEM サービスによって消費される InstallService プラグインマップ状態を作成または書き込みできる |
| コンポーネント | Windows InstallService / Microsoft Store のインストールおよび更新ブローカー |
| トリガー | Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager.SearchForAllUpdatesAsync() |
| 影響を受けるテスト済みビルド | Windows 11 25H2 ビルド 26200.8037 |
| 以前のテスト済みビルド | Windows 11 Pro 25H2 ビルド 26200.8524 |
| 影響 | 標準ユーザー -> NT AUTHORITY\SYSTEM コード実行 |
| 必要な条件 | ローカルの標準ユーザー、対話型ログオン |
| Microsoft CWE | CWE-269: 不適切な特権管理 |
| 研究者による根本原因の分類 | CWE-732: 重要なリソースに対する不適切な権限割り当て |
InstallService は、標準的な対話型ユーザーが書き込むことができる HKLM 状態のプラグイン名と DLL パスを信頼します。低特権ユーザーは、新しいプラグイン名を作成し、それを攻撃者が制御する DLL にポイントし、Store のインストール制御 WinRT API を呼び出します。その後、InstallService はその DLL を C:\Windows\System32\svchost.exe 内で NT AUTHORITY\SYSTEM として読み込みます。
このリポジトリ内のより強力な新規 VM 再現手順は、アクティブなデスクトップセッションに表示可能な SYSTEM cmd.exe を開きます。添付のビデオでは、desktop-ud6iv88\user1 が標準ユーザーとして開始し、生成されたシェルには次のように表示されます:
nt authority\system S-1-5-18
脆弱な状態は以下の場所にあります:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\PlugInList
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\StaticPluginMap
テスト済みビルドでは、標準的な対話型ユーザーが不足しているサブキーを作成したり、その配下に値を設定したりできます。その後、InstallService は SYSTEM として実行中に、それらの値をプラグイン構成として使用します。
中核となるエクスプロイトチェーン:
PlugInList\<fresh plugin name> = 1 を書き込みます。StaticPluginMap\<fresh plugin name> = <attacker DLL> を書き込みます。AppInstallManager.SearchForAllUpdatesAsync() を呼び出します。InstallService が攻撃者の DLL を SYSTEM として読み込みます。NT AUTHORITY\SYSTEM として実行されます。より強力な再現手順を使用します:
interactive-system-shell-repro/
標準ユーザーの PowerShell から:
cd interactive-system-shell-repro
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Cleanup-InstallServiceInteractiveShell.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-InstallServiceInteractiveShell.ps1
SYSTEM シェルが開いたら:
whoami /user
whoami /priv
各実行で、次の場所に証跡が書き込まれます:
C:\Users\Public\InstallServiceEopProof\<timestamp>
元の MSRC 提出ファイルは参考用として引き続き提供されています:
| ファイル | 説明 |
|---|---|
exploit.ps1 | レジストリ状態を書き込み、InstallService をトリガーし、SYSTEM マーカーファイルを検証する元の自己完結型 PoC |
canary.c | 元のマーカー書き込み DLL ソース |
isp_exploit.dll | 元のビルド済みマーカー書き込み DLL |
使用方法:
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -PayloadDll "C:\Users\Public\isp_exploit.dll"
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -Cleanup
interactive-system-shell-repro/interactive-system-shell-repro/evidence/installservice-staticplugin.mp4exploit.ps1canary.c免責事項: このエクスプロイトコードは、セキュリティ研究および教育目的で提供されています。所有していない、またはテストする明示的な許可を得ていないシステムに対して使用しないでください。作者は誤用について一切責任を負いません。
CVE-2026-50343 - ケース 120271 / VULN-192719 として MSRC に独自に報告され、以前の研究者の提出物の重複として確認されました。
Daniel Wade - GitHub · Twitter/X · Bluesky · Mastodon · Medium · nadsec.online
| 日付 | イベント |
|---|
| 2026-06-03 | 元の InstallService レポートが VULN-192719 として MSRC に提出されました |
| 2026-06-04 | MSRC ケース 120271 が開かれました |
| 2026-06-13 | 新しい Windows 11 25H2 ビルド 26200.8037 の標準ユーザー対話型 SYSTEM シェル再現手順を記録し、提出済みの MSRC ケースに追加しました |
| 2026-06-27 | MSRC が、このレポートが以前の研究者の提出物の重複であることを確認しました |
| 2026-07-14 | Microsoft が CVE-2026-50343 を公開し、セキュリティ更新プログラムをリリースしました |