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合规, 客户端加密