Notepad++ — бесплатный редактор исходного кода с открытым исходным кодом. В версии 8.9.6.1 метод isInTrustedDirectory() НЕ канонизирует путь перед проверкой. Он использует проверку на основе префикса (PathIsPrefix() или эквивалентную), которая сопоставляет пути, начинающиеся со строк доверенного каталога.
Обход пути с использованием ..\..\ после того, как префикс доверенного каталога проходит проверку при разрешении в ненадежное расположение. Исправление CVE-2026-48800 добавляет проверку isInTrustedDirectory() в Command::run() (RunDlg.cpp) перед вызовом ShellExecute(). Эта функция проверяет, находится ли разрешенный путь к исполняемому файлу в доверенном каталоге.
Эта уязвимость исправлена в версии 8.9.6.2.
Показать оригинальное описание (EN)
Notepad++ is a free and open-source source code editor. In v8.9.6.1, isInTrustedDirectory() does NOT canonicalize the path before checking. It uses a prefix-based check (PathIsPrefix() or equivalent) that matches paths starting with trusted directory strings. A path traversal using ..\..\ after a trusted directory prefix passes the check while resolving to an untrusted location. The CVE-2026-48800 patch adds isInTrustedDirectory() validation in Command::run() (RunDlg.cpp) before calling ShellExecute(). This function checks whether the resolved executable path is under a trusted directory. This vulnerability is fixed in 8.9.6.2.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Notepad-Plus-Plus Notepad\+\+
cpe:2.3:a:notepad-plus-plus:notepad\+\+:8.9.6.1:*:*:*:*:*:*:*
|
— | — |