
Prova de conceito de LPE para Windows 11 que explora o objeto COM da sessão Component Based Servicing (CBS) do TrustedInstaller e junctions para gravação arbitrária de arquivos.
Elevação de privilégios local através de método COM CBS sem restrição - escrita arbitrária de ficheiros de medium-IL para SYSTEM no Windows 11
| Data | Evento |
|---|---|
| 22 de julho de 2026 | Vulnerabilidade reportada à MSRC |
| 8 de setembro de 2026 | Microsoft corrige a pilha de manutenção do Windows Update (Patch Tuesday de setembro) |
| 29 de outubro de 2026 | A MSRC responde (ver abaixo) |
O objeto COM de sessão do Component Based Servicing (CBS) é executado dentro do TrustedInstaller.exe como SYSTEM e pode ser ativado por qualquer Utilizador Interativo. Quase todos os métodos da interface de sessão chamam EnsureCallerIsAdministrator antes de prosseguir, exceto CreateExternalTransformerExecutor, que devolvia um executor de transformador de armazenamento CSI de baixo nível sem qualquer verificação de autorização.
O Initialize() desse executor é executado como SYSTEM sem qualquer impersonação. Um chamador de integridade média pode levar o TrustedInstaller a criar um ficheiro de registo de hive numa localização controlada pelo atacante, explorando junções NTFS e ligações simbólicas do gestor de objetos, nenhuma das quais requer privilégios especiais para ser criada.
CreateExternalTransformerExecutor sem restriçãoResultado: Escrita arbitrária de ficheiros em qualquer diretório existente como SYSTEM, a partir de uma conta de utilizador normal. Sem direitos de administrador, sem privilégios especiais, sem interação do utilizador necessária.
A MSRC avaliou o meu relatório como Severidade Baixa / Defense in Depth, afirmando que as "provas de conceito avaliadas não demonstraram escritas de ficheiros em localizações não autorizadas." O caso foi encerrado por estar abaixo do limiar para manutenção imediata e não foi emitida qualquer CVE adicional, não foi atribuída recompensa, e a MSRC não acompanhará mais o problema, o que faz sentido se se tratar de um duplicado.
O PoC escreve conteúdo controlado pelo atacante em C:\Windows\System32 a partir de um processo de medium-IL não administrador, e fê-lo de forma fiável em todas as builds não corrigidas em que foi testado.
A explicação mais provável para a avaliação da MSRC é o momento: o relatório foi submetido em julho, a correção da pilha de manutenção foi lançada em setembro, e a resposta da MSRC chegou em outubro, altura em que o PoC falharia de facto com E_ACCESSDENIED em qualquer sistema atualizado.
Fui, no entanto, adicionado à página de menções especiais da MSRC, o que já é alguma coisa :)
Suspeito que a vulnerabilidade relatada aqui esteja coberta por CVE-2026-81963 ("Windows Update Stack Elevation of Privilege Vulnerability"), que foi corrigida na atualização mencionada e descreve a mesma classe de vulnerabilidade (CWE-59 / CWE-284, link-following + controle de acesso inadequado na pilha de manutenção CBS). Essa CVE foi creditada a Romain Deperne (Airbus Helicopters) e ao Microsoft Threat Intelligence Center (MSTIC), e foi confirmada como ativamente explorada em ambiente real antes do patch. MAS: não tenho confirmação oficial de que meu relatório cobre o mesmo problema.
Ambos os PoCs devem ser executados como um usuário normal, não administrador (integridade média) e contêm o mesmo exploit base. Se você executá-los elevado, o exploit terá sucesso trivialmente porque você já possui privilégios de administrador, o que anula todo o propósito.
PoC_Fun/A prova de conceito completa com uma interface gráfica. Um harness gráfico vibecodado que envolve a técnica de exploit em uma interface interativa. Bom para demonstrações e para todos que não gostam de PoCs entediantes apenas de terminal (MAKE POCS FUN AGAIN!)
A fonte monoespaçada de pixel art gótica usada nos títulos e no banner foi criada sob minha encomenda por nico_n_art.
Build:
$ cd PoC_Fun
$ dotnet clean -c Release && dotnet publish -c Release
$ .\bin\Release\net8.0-windows\win-x64\publish\TrustedHive.exe
Uso: Basta dar um duplo clique na versão de lançamento e a interface deverá orientá-lo, ou use o "?" para abrir o menu de ajuda.
PoC_Boring/O arquivo C autónomo para o exploit. Sem interface e sem dependências além de ole32.lib e advapi32.lib. Compile com MSVC (cl /O2 ...), indique um arquivo de entrada e um caminho de saída, e ele faz o que tem de ser feito.
Compilação:
$ cd PoC_Boring
$ cl /nologo /W3 /O2 TrustedHive_PoC.c ole32.lib advapi32.lib /link
$ .\TrustedHive_PoC.exe
Uso:
$ .\TrustedHive_BoringPoC.exe <input_file> <output_path> [/keep]
<input_file> : file whose bytes are written to the target
<output_path> : destination (its parent directory must exist),
e.g. C:\Windows\System32\poc.dll
/keep : keep the Hidden+System attributes the Configuration Manager
stamps on the created hive-log file (default: clear them)
EvaluateApplicability) sob a mesma CVE