Notepad++ — бесплатный редактор исходного кода с открытым исходным кодом. До версии 8.9.6.4 NppCommands.cpp проверяет HMAC файла Shorts.xml на диске в момент запуска пользовательской команды (время проверки). Однако полезные данные команды берутся из вектора _userCommands в памяти, который заполняется при запуске приложения и никогда повторно не синхронизируется с файлом на диске (время использования).
Обмен ярлыков.xml между запуском и выполнением команды приводит к тому, что проверка HMAC проверяет чистоту файла во время выполнения вредоносной команды. Злоумышленник, имеющий доступ на запись в файл Shorts.xml, перед запуском помещает вредоносную версию на диск, а затем немедленно восстанавливает законный файл. Проверка HMAC во время выполнения подтверждает восстановленный законный файл (проверка пройдена), в то время как вредоносная полезная нагрузка выполняется из памяти.
Эта уязвимость исправлена в версии 8.9.6.4.
Показать оригинальное описание (EN)
Notepad++ is a free and open-source source code editor. Prior to 8.9.6.4, NppCommands.cpp checks the HMAC of the on-disk shortcuts.xml at the moment a user command fires (Time-of-Check). However, the command payload is taken from the in-memory _userCommands vector, which is populated at application startup and never re-synchronized with the on-disk file (Time-of-Use). Swapping shortcuts.xml between startup and command execution causes the HMAC check to validate a clean file while a malicious command runs. An attacker with write access to shortcuts.xml places a malicious version on disk before launch, then immediately restores the legitimate file. The HMAC check at execution time validates the restored legitimate file (check passes), while the malicious payload executes from memory. This vulnerability is fixed in 8.9.6.4.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Notepad-Plus-Plus Notepad\+\+
cpe:2.3:a:notepad-plus-plus:notepad\+\+:*:*:*:*:*:*:*:*
|
— |
8.9.6.4
|