
CVE-2026-66804 EoP na câmera virtual Cross Device do Windows - De usuário padrão para SYSTEM
Descobri e reportei de forma independente o problema agora rastreado como
CVE-2026-66804. A MSRC confirmou minha submissão como uma duplicata de um
relatório anterior com a mesma causa raiz subjacente do Windows Camera FrameServer.
Um usuário padrão do Windows pode criar um caminho confiável ausente em
C:\ProgramData\CrossDevice, plantar a DLL COM registrada da câmera virtual
Cross Device e fazer com que o Windows Camera Frame Server carregue código
controlado pelo atacante como NT AUTHORITY\LOCAL SERVICE. A cadeia de prova
incluída usa o SeImpersonatePrivilege habilitado no token do serviço para
obter NT AUTHORITY\SYSTEM.
Vídeo principal fresh-VM de caminho ausente para SYSTEM
| CVE | CVE-2026-66804 |
| Título Microsoft | Microsoft Windows Cross Device Service Elevation of Privilege Vulnerability |
| Caso MSRC | 119805 |
| Submissão MSRC | VULN-192287 |
| Desfecho MSRC | Complete - Duplicate |
| Reconhecimento da Microsoft | Daniel Wade with nadsec |
| Data de lançamento | 2026-08-11 |
| Severidade Microsoft | Importante |
| CVSS Microsoft | 7.8 Alta - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CWE Microsoft | CWE-284: Improper Access Control |
| Classe de bug | Plantio de DLL em caminho ausente / sequestro de objeto COM |
| Componente | Cross Device Virtual Camera / Windows Camera FrameServer |
| Classe COM | {E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496} |
| Build principal testado | Windows 11 Pro 25H2 build 26200.8524 |
| Impacto | Usuário padrão local para NT AUTHORITY\SYSTEM |
O Windows registrou o servidor COM da câmera virtual Cross Device em:
%PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll
Na VM Windows 11 nova/padrão usada para validação, o registro de todo o sistema existia antes do diretório de suporte. Um usuário padrão criou o diretório ausente, plantou a DLL esperada e invocou a API da câmera virtual. O Camera Frame Server carregou a DLL como LOCAL SERVICE, após o que a cadeia de prova obteve um token SYSTEM e gravou um comprovante em caminho protegido.
Este é um problema de caminho ausente ou pré-inicialização. Não se trata de uma afirmação de que um usuário padrão pode sobrescrever uma DLL existente e protegida da Microsoft.
O registro de todo o sistema relevante é:
HKLM\SOFTWARE\Classes\CLSID\{E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496}\InProcServer32
(Default) REG_EXPAND_SZ %PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll
A cadeia demonstrada é:
C:\ProgramData\CrossDevice está ausente.SeImpersonatePrivilege.NT AUTHORITY\SYSTEM.Execute este proof of concept somente em uma VM de laboratório descartável e vulnerável que você possua ou tenha autorização explícita para testar. Tire um snapshot da VM antes do uso.
Em um prompt de comando de usuário padrão:
cd /d path\to\fresh-vm-repro
Run-CrossDevicePoC.cmd
O executor valida o registro esperado e se recusa a tocar em um diretório Cross Device pré-existente ou em um binário auxiliar inesperado. A execução bem-sucedida gera comprovantes de LOCAL SERVICE, privilégio e SYSTEM.
Pré-requisitos completos, resultados esperados, hashes, comandos de build e
etapas de limpeza estão em fresh-vm-repro/README.md.
Ambas as gravações foram mantidas porque documentam partes complementares do caso.
| Vídeo | Papel |
|---|---|
fresh-vm-missing-path-to-system.mp4 | Revalidação primária em VM nova/padrão mostrando o plantio por usuário padrão, a execução como LOCAL SERVICE e os comprovantes de SYSTEM. A gravação revisa o estado anterior de caminho ausente por meio do scrollback do terminal; a transcrição preserva a saída explícita anterior à criação. |
guided-full-chain-standard-user-to-system.mp4 | Walkthrough de apoio da submissão original. Mostra a cadeia de exploração e impersonação em maior detalhe. O payload já está presente no início, portanto esta gravação fornece contexto da cadeia em vez de prova independente de estado novo. |
A saída de console capturada da VM nova está preservada em
fresh-vm-transcript.txt.
docs/technical-report.mddocs/msrc-fresh-vm-clarification.mddocs/archive/| Data | Evento |
|---|---|
| 2026-06-01 | Relatório inicial enviado à MSRC como VULN-192287; caso 119805 da MSRC aberto |
| 2026-06-04 | Esclarecimento de caminho ausente/pré-inicialização e arquivo limpo de reprodução fornecidos |
| 2026-06-05 | A MSRC reconheceu o esclarecimento |
| 2026-07-27 | A MSRC confirmou o comportamento e então determinou que a submissão duplicava um problema anterior com a mesma causa raiz subjacente do Windows Camera FrameServer; o crédito foi planejado e nenhuma recompensa foi concedida |
| 2026-08-11 | A Microsoft publicou CVE-2026-66804 e lançou atualizações de segurança |
| 2026-08-13 | A redação do reconhecimento Daniel Wade with nadsec foi confirmada |
Partes do resolvedor OXID, da impersonação por named pipe, da construção de OBJREF e da lógica de aquisição de token SYSTEM foram adaptadas e traduzidas para C a partir do GodPotato, de BeichenDream e colaboradores.
Consulte THIRD_PARTY_NOTICES.md e
LICENSES/Apache-2.0.txt para detalhes de atribuição
e licença.
fresh-vm-repro/docs/technical-report.md