Rat5ak/CVE-2026-50343-InstallService-EoP
GitHub: Rat5ak/CVE-2026-50343-InstallService-EoP
Windows InstallService 注册表 ACL 配置不当导致标准用户可经 DLL 劫持实现 SYSTEM 提权的漏洞 PoC。
Stars: 40 | Forks: 12
# CVE-2026-50343:InstallService StaticPluginMap EoP(标准用户到 SYSTEM)
我独立发现并报告了这个现在被追踪为
`CVE-2026-50343` 的漏洞。MSRC 确认我的提交是另一位
研究人员早期报告的重复。一个标准的交互式用户可以将
由攻击者控制的插件状态写入到
`HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State` 下。
Microsoft Store Install Service 以 `NT AUTHORITY\SYSTEM` 身份运行,它读取
`PlugInList` 和 `StaticPluginMap`,并在被公开的
`AppInstallManager.SearchForAllUpdatesAsync()` 触发后加载映射的 DLL。结果就是实现了本地
标准用户到 SYSTEM 的代码执行。
**[📹 交互式 SYSTEM shell 演示视频](interactive-system-shell-repro/evidence/installservice-staticplugin.mp4)**
| | |
|---|---|
| CVE | [CVE-2026-50343](https://msrc.microsoft.com/update-guide/vulnerability/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 安装和更新 broker |
| 触发条件 | `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:关键资源的权限分配不当 |
## TL;DR
`InstallService` 信任 HKLM 状态中的插件名称和 DLL 路径,而
标准交互式用户可以写入这些状态。低权限用户创建一个全新的
插件名称,将其指向攻击者控制的 DLL,并调用 Store
install-control WinRT API。随后 `InstallService` 以 `NT AUTHORITY\SYSTEM` 的身份在
`C:\Windows\System32\svchost.exe` 中加载该 DLL。
此仓库中更强大的全新虚拟机复现(repro)在
活动的桌面会话中打开了一个可见的 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 身份运行时将这些
值作为插件配置进行消费。
核心的利用链:
1. 标准用户将攻击者控制的 DLL 放置在可读取的位置。
2. 标准用户写入 `PlugInList\<新插件名称> = 1`。
3. 标准用户写入 `StaticPluginMap\<新插件名称> = <攻击者 DLL>`。
4. 标准用户调用 `AppInstallManager.SearchForAllUpdatesAsync()`。
5. `InstallService` 以 SYSTEM 身份加载攻击者 DLL。
6. DLL 代码以 `NT AUTHORITY\SYSTEM` 身份执行。
## 交互式 SYSTEM Shell 复现
使用更强大的复现脚本:
```
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\
```
## 最初的最小复现
最初的 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
```
## 时间线
| 日期 | 事件 |
|------|-------|
| 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` 并发布了安全更新 |
## 资源
- Microsoft 公告:[CVE-2026-50343](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50343)
- 强力复现:[`interactive-system-shell-repro/`](interactive-system-shell-repro/)
- 演示视频:[`interactive-system-shell-repro/evidence/installservice-staticplugin.mp4`](interactive-system-shell-repro/evidence/installservice-staticplugin.mp4)
- 最初的 PoC:[`exploit.ps1`](exploit.ps1)
- 最初的 Canary 源码:[`canary.c`](canary.c)
*CVE-2026-50343 - 作为编号 `120271` / `VULN-192719` 独立报告给 MSRC,并已被确认为早期研究员提交的重复项。*
标签:AI合规, 客户端加密