我独立发现并报告了现被跟踪为 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 build 26200.8037 |
| 先前测试的版本 | Windows 11 Pro 25H2 build 26200.8524 |
| 影响 | 标准用户 -> NT AUTHORITY\SYSTEM 代码执行 |
| 要求 | 本地标准用户,交互式登录 |
| Microsoft CWE | CWE-269:权限管理不当 |
| 研究者根因分类 | CWE-732:关键资源权限分配不正确 |
InstallService 信任来自 HKLM 状态的插件名称和 DLL 路径,而该状态是标准交互式用户可以写入的。低权限用户创建一个新的插件名称,将其指向受攻击者控制的 DLL,并调用 Store 安装控制的 WinRT API。随后 InstallService 以 NT AUTHORITY\SYSTEM 身份在 C:\Windows\System32\svchost.exe 内加载该 DLL。
本仓库中更强的全新虚拟机复现会在活动桌面会话中打开一个可见的 SYSTEM cmd.exe。在附带的视频中,desktop-ud6iv88\user1 以标准用户身份启动,生成的 shell 显示:
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 以 SYSTEM 身份加载攻击者 DLL。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 shell 打开时:
whoami /user
whoami /priv
每次运行都会在以下位置写入证据:
C:\Users\Public\InstallServiceEopProof\<timestamp>
原始 MSRC 提交文件仍保留以供参考:
| 文件 | 描述 |
|---|---|
exploit.ps1 | 原始的自包含 PoC,可写入注册表状态、触发 InstallService 并验证 SYSTEM 标记文件 |
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 - 独立报告给 MSRC(案件 120271 / VULN-192719),并被确认为与一位研究人员更早提交的重复报告。
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 build 26200.8037 上录制了标准用户交互式 SYSTEM shell 复现,并将其添加到已提交的 MSRC 案件中 |
| 2026-06-27 | MSRC 确认该报告与一位研究人员更早的提交重复 |
| 2026-07-14 | Microsoft 发布了 CVE-2026-50343 并推送了安全更新 |