
CVE-2026-50343 InstallService StaticPluginMap EoP - de usuário padrão para SYSTEM
Eu descobri e relatei de forma independente a vulnerabilidade agora rastreada como CVE-2026-50343. A MSRC confirmou meu envio como duplicado de um relatório anterior de outro pesquisador. Um usuário interativo padrão pode escrever estado de plugin controlado pelo atacante sob HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State. O Serviço de Instalação da Microsoft Store executa como NT AUTHORITY\SYSTEM, lê PlugInList e StaticPluginMap, e carrega a DLL mapeada após um gatilho público AppInstallManager.SearchForAllUpdatesAsync(). O resultado é execução de código de usuário padrão local para SYSTEM.
📹 Vídeo de demonstração do shell SYSTEM interativo
InstallService confia em nomes de plugin e caminhos de DLL do estado HKLM que um usuário interativo padrão pode escrever. Um usuário com baixos privilégios cria um nome de plugin novo, aponta para uma DLL controlada pelo atacante e chama a API WinRT de controle de instalação da Store. InstallService então carrega essa DLL dentro de C:\Windows\System32\svchost.exe como NT AUTHORITY\SYSTEM.
A reprodução mais forte de VM limpa neste repositório abre um cmd.exe SYSTEM visível na sessão ativa da área de trabalho. No vídeo anexado, desktop-ud6iv88\user1 inicia como usuário padrão e o shell gerado relata:
nt authority\system S-1-5-18
O estado vulnerável reside em:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\PlugInList
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\StaticPluginMap
Nas compilações testadas, um usuário interativo padrão pode criar as subchaves ausentes ou definir valores abaixo delas. InstallService posteriormente consome esses valores como configuração de plugin enquanto executa como SYSTEM.
A cadeia central do exploit:
PlugInList\<fresh plugin name> = 1.StaticPluginMap\<fresh plugin name> = <attacker DLL>.AppInstallManager.SearchForAllUpdatesAsync().InstallService carrega a DLL do atacante como SYSTEM.NT AUTHORITY\SYSTEM.Use a reprodução mais forte:
interactive-system-shell-repro/
A partir de um PowerShell de usuário padrão:
cd interactive-system-shell-repro
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Cleanup-InstallServiceInteractiveShell.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-InstallServiceInteractiveShell.ps1
Quando o shell SYSTEM abrir:
whoami /user
whoami /priv
Cada execução escreve evidências em:
C:\Users\Public\InstallServiceEopProof\<timestamp>
Os arquivos originais de envio para a MSRC ainda estão presentes para referência:
| File | Description |
|---|---|
exploit.ps1 | PoC autossuficiente original que escreve estado do registro, aciona o InstallService e verifica arquivos de marcação SYSTEM |
canary.c | Código-fonte original da DLL de escrita de marcador |
isp_exploit.dll | DLL de escrita de marcador pré-construída original |
Uso:
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.cAviso Legal: Este código de exploit é fornecido para fins de pesquisa de segurança e educacionais. Não o utilize contra sistemas que você não possui ou sem autorização explícita para testar. O autor não é responsável pelo uso indevido.
CVE-2026-50343 - relatado de forma independente para a MSRC como caso 120271 / VULN-192719 e confirmado como um duplicado de um envio anterior de pesquisador.
Daniel Wade - GitHub · Twitter/X · Bluesky · Mastodon · Medium · nadsec.online
| CVE | CVE-2026-50343 |
| MSRC case | 120271 / VULN-192719 |
| MSRC status | Duplicado confirmado de um relatório anterior de outro pesquisador |
| Microsoft severity | Importante |
| Microsoft CVSS | 7.8 Alto - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Bug class | ACL de registro incorreta / carregamento privilegiado de DLL |
| Root cause | Usuários padrão podem criar ou escrever estado de mapa de plugin do InstallService consumido por um serviço SYSTEM |
| Component | Windows InstallService / broker de instalação e atualização da Microsoft Store |
| Trigger | Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager.SearchForAllUpdatesAsync() |
| Affected tested build | Windows 11 25H2 build 26200.8037 |
| Previous tested build | Windows 11 Pro 25H2 build 26200.8524 |
| Impact | Usuário padrão -> execução de código NT AUTHORITY\SYSTEM |
| Required | Usuário padrão local, logon interativo |
| Microsoft CWE | CWE-269: Gerenciamento de Privilégio Incorreto |
| Researcher root-cause classification | CWE-732: Atribuição de Permissão Incorreta para Recurso Crítico |
| Date | Event |
|---|
| 2026-06-03 | Relatório original do InstallService enviado para a MSRC como VULN-192719 |
| 2026-06-04 | Caso MSRC 120271 aberto |
| 2026-06-13 | Reprodução de shell SYSTEM interativo de usuário padrão em nova compilação Windows 11 25H2 26200.8037 gravada e adicionada ao caso MSRC enviado |
| 2026-06-27 | MSRC confirmou que o relatório era um duplicado de um envio anterior de pesquisador |
| 2026-07-14 | Microsoft publicou CVE-2026-50343 e lançou atualizações de segurança |