
Python proof-of-concept эксплойт для CVE-2026-69414 — повышения привилегий через путаницу типов в Microsoft Malware Protection Engine, с обходом AMSI/ETW и опциями закрепления.
CVE-2026-69414 — это уязвимость повышения привилегий в Microsoft Malware Protection Engine (часть Windows Defender / Microsoft Defender Antivirus), публично именуемая «RoguePlanet». Она представляет собой обход патча исходной уязвимости CVE-2026-50656.
| Поле | Значение |
|---|---|
| CVE ID | CVE-2026-69414 |
| Тип | Повышение привилегий (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 |
| Вектор атаки | Локальный |
| Требуемые привилегии | Низкие |
| Взаимодействие с пользователем | Отсутствует |
| Область действия | Не изменяется |
| Исправленная версия | Engine 1.1.26080.3 |
| Исходная CVE | CVE-2026-50656 |
Microsoft Malware Protection Engine содержит уязвимость путаницы типов (type confusion) в логике обработки запросов на сканирование. При обработке специально сформированного заголовка файла или структуры данных сканирования движок некорректно интерпретирует тип области памяти, что приводит к операции чтения/записи за границами буфера.
Уязвимость присутствует во внутренней структуре контекста сканирования движка, а именно в том, как поле type проверяется на соответствие ожидаемому типу для текущей операции сканирования. Когда сканируется файл со специально сформированным заголовком:
type заголовка (байт 4)0x7F срабатывает необработанный путь выполнения кодаsize offset (байты 5-8)Исходный патч для CVE-2026-50656 пытался проверять поле типа по белому списку известных типов. Однако патч не обеспечил корректную проверку поля типа во всех путях выполнения кода — в частности, в асинхронном обработчике сканирования (MpAsynchronousScan), который использует иной путь выполнения, чем синхронный сканер.
Эксплойт использует этот пробел следующим образом:
MP_ENGINE_PREFERENCE_PATCH_BYPASS_MODE для включения обхода┌─────────────────────────────────────────────────────────────────┐
│ 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 (для метода на основе COM): 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
| Параметр | Описание |
|---|---|
--cmd CMD | Команда для выполнения при успехе |
--target PATH | Путь к сформированному файлу (генерируется автоматически, если не указан) |
--analyze | Только проанализировать структуру сформированного файла |
--detect | Определить свойства целевой системы |
--method METHOD | Метод эксплуатации (com, direct-api, shellcode, fallback) |
--multi-stage | Использовать многоэтапную эксплуатацию |
--no-amsi | Отключить обход AMSI |
--no-etw | Отключить обход ETW |
--persist | Добавить механизм сохранения (registry, scheduled-task, service, all) |
--verbose | Включить подробный вывод |
# 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
PoC был протестирован на Windows 11 25H2 Canary и Windows Server 2025 с заявленным показателем успеха 100%. Предполагается, что Windows 10 уязвима, но в данной реализации она не тестировалась.