
CVE-2026-42978 Windows Push Notifications (WpnService) Use-After-Free и Race Condition PoC-исследование, диагностический сканер и модуль аудита безопасности для AI Security Tool.
Навигация по сайту: Главная · Обновления · Загрузки · Модули
Продукт: AI Security Tool
Сайт: zerodayevil.github.io
Документация: https://zerodayevil.github.io/ai-security-tool
Этот модуль представляет собой проверенный разбор и профиль безопасной проверки для AI Security Tool.
Используйте только модули, перечисленные на сайте проекта или в официальном каталоге. Загружайте этот модуль внутри одобренного приложения, против конечных точек, которыми вы владеете или на оценку которых у вас есть письменное разрешение.
Этот репозиторий не содержит вооружённого эксплойта против WpnService. Лаборатория в каталоге lab/ — это автономная имитация класса уязвимости (TOCTOU / двойное чтение). Она не взаимодействует с реальной службой push-уведомлений.
Сначала установите хост-приложение. Затем включите этот модуль через Modules → Windows / Local EoP → CVE-2026-42978.
| ОС / платформа | Версия | Архитектура / формат | Обновлено | Статус | Загрузка |
|---|---|---|---|---|---|
| Windows | v6.3.20 | x64 installer (.exe) | 2026-09-08 | Последняя | Скачать .exe |
| Windows | v6.3.20 | x64 portable (.tar.gz) | 2026-09-08 | Последняя | Скачать .tar.gz |
| macOS | v5.3.29 | Apple Silicon (.dmg) | 2026-09-05 | Стабильная | Скачать .dmg |
| Linux | v5.3.27 | Universal x64 (.tar.gz) | 2026-09-01 | Стабильная | Скачать .tar.gz |
| Android | v5.3.27 | ARM64 APK (.apk) | 2026-09-01 | Стабильная | Скачать .apk |
Только официальные источники:
CVE-2026-42978 — это локальное повышение привилегий в Windows Push Notifications. Microsoft описывает это как одновременный доступ к общему ресурсу без должной синхронизации (CWE-362). Исследование пропатченной и непропатченной версий wpncore.dll показывает гонку с использованием после освобождения (use-after-free) в PresentationEndpointFacade во время завершения работы платформы.
WpnService работает в сессии 0 как NT AUTHORITY\SYSTEM (svchost.exe -k netsvcs -p). Доставка всплывающих уведомлений, плиток и значков проходит через неё. Выигранная гонка против этого процесса — это проблема уровня SYSTEM на локальной машине, а не удалённая уязвимость DC до аутентификации.
Статус: исправлено 10 июня 2026 (Patch Tuesday). Эта страница — оборонительное исследование.
Это не CVE-2026-41089 (Netlogon RCE). Другой компонент, другая модель привилегий, другая дата исправления.
| Поле | Значение |
|---|---|
| CVE | CVE-2026-42978 |
| БДУ | BDU:2026-08249 |
| Уведомление вендора | MSRC — Windows Push Notifications EoP |
| Критичность | Высокая · CVSS 3.1 7.8 |
| Слабость | CWE-362 состояние гонки · use-after-free на пути завершения работы |
| Компонент | Windows Push Notifications · WpnService · wpncore.dll |
| Вектор атаки | Локальный |
| Требуемые привилегии | Низкие (авторизованный локальный пользователь) |
| Взаимодействие с пользователем | Отсутствует |
| Patch Tuesday | 10 июня 2026 |
| Тип модуля | Исследовательский разбор + безопасная проверка в приложении + пакет обнаружения |
Клиентские и серверные SKU, в которых поставляется Push Notifications. Перед закрытием тикета уточните точный KB на MSRC.
| Семейство | Примечания |
|---|---|
| Windows 10 | 1809, 21H2, 22H2 (x86 / x64 / ARM64 в зависимости от применимости) |
| Windows 11 | 23H2, 24H2, 25H2, 26H1 |
| Windows Server | 2016 / 2019 / 2022 / 2025 (полные и Server Core, где компонент присутствует) |
Ориентировочные сборки по публичным примечаниям к обслуживанию (всегда перепроверяйте на MSRC):
| Ветка | Ориентировочная исправленная сборка |
|---|---|
| Windows 11 23H2 | 22631.7219 |
| Windows 11 24H2 | 26100.8655 |
| Windows 11 25H2 | 26200.8655 |
| Windows 11 26H1 | 28000.2269 |
Пример wpncore.dll (24H2) | уязвимая 26100.8521 → исправленная 26100.8655 |
Фасад оборачивает вызовы API уведомлений и делегирует их в PresentationEndpointImpl. Во время завершения работы платформы объект NotificationPlatform уничтожается. Несколько методов фасада исторически получали указатель на платформу без флага завершения работы или общей блокировки. Если завершение выигрывает гонку, следующий вызов использует висячий указатель.
Один и тот же шаблон блокировки и защиты был применён к 49 методам PresentationEndpointFacade::*. Реализующие методы под ними остались без изменений — дыра находилась на уровне фасада.
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);
}
}
Что добавляет патч:
AcquireSRWLockShared — блокировка чтения-записи; завершение работы берёт эксклюзивную блокировку.s_platformShutdown — выход с E_APPLICATION_EXITING, если завершение уже началось.unique_storage, поэтому блокировка снимается и на путях исключений.Feature_4097557817 для поэтапного развёртывания / отката.| Категория | Примеры функций |
|---|---|
| Toast | ToastUnblockAll, ToastCreateSession, ToastCloseSession, ToastRequestAllNotifications, ToastSuppress |
| Tile | TileCreateSession, TileCloseSession, TileRequestResourceForeground |
| Регистрация | RegisterApplication, UnregisterApplication, RegisterHandler, UpdateRegistration |
| Настройки | ChangeAppSetting, QueryAppSetting, QueryGlobalSetting |
| Доставка | Deliver, GetPayloadForNotificationId, Submit, PostScheduledNotification |
| Запросы | GetRegisteredHandler, GetSettingsFromHandler, GetAssetsFromHandler |
Заметки по PE из reports/:
.text вырос на 18 432 байта.data вырос на 96 байт (Wns::s_platformLock, Wns::s_platformShutdown)WpnService работает как SYSTEM. Если гонка выиграна, вызов висячего vtable может быть превращён в локальное выполнение кода с правами SYSTEM. Этот шаг — heap spray, перехват vtable, полезная нагрузка — вне области рассмотрения здесь.
Этот модуль предназначен для понимания первопричины, проверки патча и обнаружения.
detection/) на лабораторной машине.Не запускайте циклы сбоев или гонок против рабочей WpnService.
authorized operator
│
▼
AI Security Tool → module 42978
│
▼
authorized Windows endpoint
│
├─ patch / wpncore.dll age
└─ SIEM / Sysmon / Event Log notes
lab/ — это автономная демонстрация на C двойного чтения / TOCTOU. Она использует именованный канал и разделяемую память. Она не загружает wpncore.dll и не запускает и не останавливает WpnService.
vulnerable_service.exe — проверяет длину, делает паузу, снова читает длину.race_attacker.exe — изменяет разделяемое значение в течение этого окна.--patched — однократное чтение в локальную переменную; тот же атакующий должен увидеть ноль гонок.Требуется GCC (MinGW). Из каталога lab/:
build.bat
Терминал 1: vulnerable_service.exe
Терминал 2: race_attacker.exe 5
Затем сравните с vulnerable_service.exe --patched.
detection/etw_wpn_monitor.ps1Семь проверок:
WpnServicewpncore.dll)powershell -ExecutionPolicy Bypass .\detection\etw_wpn_monitor.ps1
detection/sysmon_wpn_race_detect.xml| Правило | Для чего оно нужно |
|---|---|
WPN_EoP_ChildProcess | svchost (netsvcs) порождает cmd / powershell / wscript |
WPN_PipeAccess | Подключения к именованным каналам, связанным с WPN |
WPN_FileCreation | Создание файлов в каталогах данных уведомлений |
WPN_RegistryTampering | Запись в ключи PushNotifications |
WPN_ProcessAccess | PROCESS_ALL_ACCESS к svchost |
WPN_ThreadInjection | CreateRemoteThread в svchost |
sysmon64.exe -accepteula -i detection\sysmon_wpn_race_detect.xml
Канал: Microsoft-Windows-PushNotifications-Platform/Operational
wpncore.dll соответствует исправленной строке для этой веткиsvchost -k netsvcsЕсли etw_wpn_monitor.ps1 сообщает об отсутствии патча — установите обновление июня 2026 и перепроверьте.
| CVE | Класс |
|---|---|
| CVE-2026-42977 | EoP · гонка |
| CVE-2026-42978 | EoP · гонка (этот модуль) |
| CVE-2026-42979 | EoP · гонка |
| CVE-2026-42991 | EoP · гонка |
| CVE-2026-42969 | Раскрытие информации · гонка |
| CVE-2026-42970 | Раскрытие информации · гонка |
| CVE-2026-42973 | Раскрытие информации · гонка |
| 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
Требуется: Windows 10/11 для скриптов обнаружения · MinGW для имитационной лаборатории · Sysmon опционально.
Скриншоты в этом README загружаются с публичных URL-адресов изображений. Они не хранятся в этом дереве.
4 модуля@ZeroDayEvil@ZeroDayEvil@ZeroDayEvil@ZeroDayVPN2 модуля@ZeroDayVPN@ZeroDayEvil2 модуля@ZeroDayEvil@ZeroDayVPNПолезная работа:
Не открывайте PR, который добавляет вооружённый эксплойт для WpnService, вспомогательный инструмент heap spray или PoC-эксплойт против работающей службы.
Выпущено под лицензией MIT. См. LICENSE.
Только авторизованное оборонительное исследование и системное администрирование.
Тестирование локального повышения привилегий без письменного разрешения незаконно.
Уязвимость исправлена. Поддерживайте Windows в актуальном состоянии. Этот репозиторий не содержит вооружённого эксплойта против работающей службы.
AI Security Tool — терминальный рабочий процесс и автоматизация для специалистов по кибербезопасности.
Оборонительный модуль для zerodayevil.github.io · Без автономного эксплойта для WpnService · Проверяйте факты на MSRC