CVE-2026-66804: registro COM pendente leva a SYSTEM no Windows
Técnicas e Métodos de Ataque2026-09-24, 12:00
James Forshaw, do Google Project Zero, analisou CVE-2026-66804 — uma LPE no Windows causada por uma correção incompleta para a anterior CVE-2026-50343 (Dark Elevator).
O sistema manteve um registro COM CrossDevice com o CLSID
{E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496}, apontando para um %PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll ausente. Como usuários comuns podem criar diretórios em C:\ProgramData, um atacante pode plantar sua própria DLL no caminho esperado.O principal desafio é fazer um processo privilegiado carregá-la. Forshaw usou marshaling COM personalizado: um objeto que implementa
IMarshal pode especificar um CLSID arbitrário para usar durante o unmarshaling, fazendo com que o runtime COM procure o servidor in-process correspondente e carregue sua DLL. A exploração, portanto, exige um servidor COM privilegiado que não desabilite o marshaling personalizado. Forshaw encontrou um no Shell Create Object Handler, hospedado em dllhost.exe como NT AUTHORITY\SYSTEM com CustomMarshalAllowed=True.Um usuário comum pode iniciar o servidor privilegiado por meio da tarefa agendada
\Microsoft\Windows\Shell\CreateObjectTask, após criar o evento global ShellCreateObjectTaskReadyEvent. O atacante pode então passar um objeto COM especialmente criado para a interface ICreateObject. Durante o unmarshaling, o COM resolve o CLSID CrossDevice e carrega a DLL plantada de %PROGRAMDATA% no processo SYSTEM, resultando em escalação de privilégios.Forshaw publicou um exploit totalmente funcional. Ele também incluiu um script PowerShell usando
OleViewDotNet e NtObjectManager para identificar outras classes COM in-process registradas cujas DLLs não podem ser encontradas por LoadLibrary. Os caminhos resultantes devem então ser verificados manualmente para determinar se um atacante pode plantar uma DLL ali.Forshaw observa que a mesma técnica de exploração pode simplificar a exploração de outros registros COM pendentes e também pode ser aplicada a unmarshalers COM personalizados com bugs.
Vulnerabilidades
Fornecedor
Produto
Mais