Recherche PoC sur une condition de course et un use-after-free dans Windows Push Notifications (WpnService) CVE-2026-42978, scanner de diagnostic et module d'audit de sécurité pour AI Security Tool.
Navigation du site : Accueil · Mises à jour · Téléchargements · Modules
Produit : AI Security Tool
Site : zerodayevil.github.io
Docs : https://zerodayevil.github.io/ai-security-tool
Ce module est une analyse relue et un profil de vérification sécurisé pour AI Security Tool.
N'utilisez que les modules listés sur le site du projet ou dans le catalogue officiel. Chargez ce module à l'intérieur de l'application approuvée, contre des points de terminaison que vous possédez ou pour lesquels vous disposez d'une autorisation écrite d'évaluation.
Ce dépôt ne fournit pas d'exploit weaponisé contre WpnService. Le laboratoire sous lab/ est une maquette autonome de la classe de bug (TOCTOU / double-fetch). Il ne communique pas avec le véritable service de notifications push.
Installez d'abord l'application hôte. Activez ensuite ce module depuis Modules → Windows / Local EoP → CVE-2026-42978.
| OS / plateforme | Version | Architecture / format | Mis à jour | Statut | Téléchargement |
|---|---|---|---|---|---|
| Windows | v6.3.20 | installateur x64 (.exe) | 2026-09-08 | Dernière | Télécharger .exe |
| Windows | v6.3.20 | portable x64 (.tar.gz) | 2026-09-08 | Dernière | Télécharger .tar.gz |
| macOS | v5.3.29 | Apple Silicon (.dmg) | 2026-09-05 | Stable | Télécharger .dmg |
| Linux | v5.3.27 | Universel x64 (.tar.gz) | 2026-09-01 | Stable | Télécharger .tar.gz |
| Android | v5.3.27 | APK ARM64 (.apk) | 2026-09-01 | Stable | Télécharger .apk |
Sources officielles uniquement :
CVE-2026-42978 est une élévation de privilèges locale dans Windows Push Notifications. Microsoft décrit un accès concurrent à une ressource partagée sans synchronisation adéquate (CWE-362). La recherche sur wpncore.dll corrigé vs. non corrigé montre une race use-after-free dans PresentationEndpointFacade lors de l'arrêt de la plateforme.
WpnService s'exécute dans la session 0 en tant que NT AUTHORITY\SYSTEM (svchost.exe -k netsvcs -p). La livraison des toasts, tuiles et badges passe par lui. Une race gagnée contre ce processus est un problème SYSTEM sur la machine locale — pas un bug DC distant en pré-authentification.
Statut : corrigé le 10 juin 2026 (Patch Tuesday). Cette page relève de la recherche défensive.
Ce n'est pas CVE-2026-41089 (RCE Netlogon). Composant différent, modèle de privilèges différent, date de correctif différente.
| Champ | Valeur |
|---|---|
| CVE | CVE-2026-42978 |
| BDU | BDU:2026-08249 |
| Avis fournisseur | MSRC — Windows Push Notifications EoP |
| Sévérité | Élevée · CVSS 3.1 7.8 |
| Faiblesse | Condition de course CWE-362 · use-after-free sur le chemin d'arrêt |
| Composant | Windows Push Notifications · WpnService · wpncore.dll |
| Vecteur d'attaque | Local |
| Privilèges requis | Faibles (utilisateur local autorisé) |
| Interaction utilisateur | Aucune |
| Patch Tuesday | 10 juin 2026 |
| Type de module | Analyse de recherche + vérification sécurisée intégrée + pack de détection |
SKU client et serveur qui embarquent Push Notifications. Confirmez le KB exact sur MSRC avant de clôturer un ticket.
| Famille | Notes |
|---|---|
| Windows 10 | 1809, 21H2, 22H2 (x86 / x64 / ARM64 selon le cas) |
| Windows 11 | 23H2, 24H2, 25H2, 26H1 |
| Windows Server | 2016 / 2019 / 2022 / 2025 (full et Server Core là où le composant existe) |
Builds indicatifs d'après les notes de maintenance publiques (revérifiez toujours MSRC) :
| Branche | Build corrigé indicatif |
|---|---|
| Windows 11 23H2 | 22631.7219 |
| Windows 11 24H2 | 26100.8655 |
| Windows 11 25H2 | 26200.8655 |
| Windows 11 26H1 | 28000.2269 |
Exemple wpncore.dll (24H2) | vulnérable 26100.8521 → corrigé 26100.8655 |
La façade encapsule les appels à l'API de notification et délègue à PresentationEndpointImpl. Lors de l'arrêt de la plateforme, l'objet NotificationPlatform est détruit. Plusieurs méthodes de la façade prenaient historiquement un pointeur de plateforme sans indicateur d'arrêt ni verrou partagé. Si le démontage gagne la course, l'appel suivant utilise un pointeur pendant.
Le même schéma verrou-et-garde a été appliqué sur 49 méthodes PresentationEndpointFacade::*. Les méthodes d'implémentation sous-jacentes ont été laissées telles quelles — la faille se situait au niveau de la façade.
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);
}
}
Ce que le correctif ajoute :
AcquireSRWLockShared — verrou lecteurs-écrivains ; l'arrêt prend l'exclusif.s_platformShutdown — sortie avec E_APPLICATION_EXITING si le démontage a commencé.unique_storage, afin que le verrou soit relâché sur les chemins d'exception.Feature_4097557817 pour le déploiement progressif / le rollback.| Catégorie | Exemples de fonctions |
|---|---|
| Toast | ToastUnblockAll, ToastCreateSession, ToastCloseSession, ToastRequestAllNotifications, ToastSuppress |
| Tile | TileCreateSession, TileCloseSession, TileRequestResourceForeground |
| Enregistrement | RegisterApplication, UnregisterApplication, RegisterHandler, UpdateRegistration |
| Paramètres | ChangeAppSetting, QueryAppSetting, QueryGlobalSetting |
| Livraison | Deliver, GetPayloadForNotificationId, Submit, PostScheduledNotification |
| Requêtes | GetRegisteredHandler, GetSettingsFromHandler, GetAssetsFromHandler |
Notes PE issues de reports/ :
.text a augmenté de 18 432 octets.data a augmenté de 96 octets (Wns::s_platformLock, Wns::s_platformShutdown)WpnService est SYSTEM. Si la course est gagnée, un appel de vtable pendant peut être transformé en exécution de code SYSTEM local. Cette étape — heap spray, détournement de vtable, payload — est hors périmètre ici.
Ce module sert à la compréhension de la cause racine, à la vérification du correctif et à la détection.
detection/) sur une machine de laboratoire.Ne lancez pas de boucles de crash ou de race contre un WpnService de production.
authorized operator
│
▼
AI Security Tool → module 42978
│
▼
authorized Windows endpoint
│
├─ patch / wpncore.dll age
└─ SIEM / Sysmon / Event Log notes
lab/ est une démo C autonome de double-fetch / TOCTOU. Elle utilise un named pipe et de la mémoire partagée. Elle ne charge pas wpncore.dll et ne démarre ni n'arrête pas WpnService.
vulnerable_service.exe — valide une longueur, dort, relit la longueur.race_attacker.exe — modifie la valeur partagée pendant cette fenêtre.--patched — lecture unique dans une variable locale ; le même attaquant devrait observer zéro race.Nécessite GCC (MinGW). Depuis lab/ :
build.bat
Terminal 1 : vulnerable_service.exe
Terminal 2 : race_attacker.exe 5
Comparez ensuite avec vulnerable_service.exe --patched.
detection/etw_wpn_monitor.ps1Sept vérifications :
WpnServicewpncore.dll)powershell -ExecutionPolicy Bypass .\detection\etw_wpn_monitor.ps1
detection/sysmon_wpn_race_detect.xml| Règle | À quoi elle sert |
|---|---|
WPN_EoP_ChildProcess | svchost (netsvcs) lançant cmd / powershell / wscript |
WPN_PipeAccess | Connexions aux named pipes liés à WPN |
WPN_FileCreation | Création de fichier sous les répertoires de données de notification |
WPN_RegistryTampering | Écritures sous les clés PushNotifications |
WPN_ProcessAccess | PROCESS_ALL_ACCESS vers svchost |
WPN_ThreadInjection | CreateRemoteThread dans svchost |
sysmon64.exe -accepteula -i detection\sysmon_wpn_race_detect.xml
Canal : Microsoft-Windows-PushNotifications-Platform/Operational
wpncore.dll correspond à la ligne corrigée de cette branchesvchost -k netsvcs lançant un shellSi etw_wpn_monitor.ps1 indique non corrigé — installez la mise à jour de juin 2026 et revérifiez.
| CVE | Classe |
|---|---|
| CVE-2026-42977 | EoP · race |
| CVE-2026-42978 | EoP · race (ce module) |
| CVE-2026-42979 | EoP · race |
| CVE-2026-42991 | EoP · race |
| CVE-2026-42969 | Divulgation d'informations · race |
| CVE-2026-42970 | Divulgation d'informations · race |
| CVE-2026-42973 | Divulgation d'informations · 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
Prérequis : Windows 10/11 pour les scripts de détection · MinGW pour le laboratoire maquette · Sysmon en option.
Les captures d'écran de ce README sont chargées depuis des URL d'images publiques. Elles ne sont pas stockées dans cette arborescence.
4 modules@ZeroDayEvil@ZeroDayEvil@ZeroDayEvil@ZeroDayVPN2 modules@ZeroDayVPN@ZeroDayEvil2 modules@ZeroDayEvil@ZeroDayVPNTravaux utiles :
N'ouvrez pas de PR qui ajoute un exploit weaponisé de WpnService, un assistant de heap-spray ou un PoC d'exploit contre le service en production.
Publié sous licence MIT. Voir LICENSE.
Recherche défensive autorisée et administration système uniquement.
Les tests d'élévation de privilèges locaux sans autorisation écrite sont illégaux.
La vulnérabilité est corrigée. Maintenez Windows à jour. Ce dépôt n'inclut pas d'exploit weaponisé contre le service en production.
AI Security Tool — flux de travail terminal et automatisation pour les professionnels de la cybersécurité.
Module défensif pour zerodayevil.github.io · Aucun exploit WpnService autonome · Vérifiez les faits sur MSRC