
Доказательство концепции для CVE-2022-31902, уязвимости отказа в обслуживании в Notepad++ (x86), вызванной функцией Find All на специально созданных текстовых файлах, приводящей к сбою из-за ошибки выделения памяти.
Notepad++(x86) версии 8.4.3 и ранее.например, first.txt) и последующем использовании опций Find All in All Opened Document или Find All in Current Opened Document в разделе поиска.В качестве иллюстративного примера ниже, по состоянию на 11/07/2022, используется последняя версия Notepad++(x86) 8.4.3.

Find All in All Opened Document или Find All in Current Opened Document.


Здесь мы видим, что проблема находится в ScintallComponent -> ScintillaWin.cxx -> строка 3699.
Когда пользователь использует функцию поиска Notepad++ в first.txt, это приводит к краху приложения.
Notepad++ вызывает функцию finder::add в файле findReplaceDlg.cpp, которая вызывает функцию push_back(foundinfo), которая, в свою очередь, запрашивает выделение памяти размером 4bf21.
Из-за нехватки памяти new_operator не может выделить память и возвращает bad_alloc.
Таким образом, можно сказать, что поиск символа в first.txt с помощью кнопки Find All in All Opened Document приводит к отказу в обслуживании.
Уязвимость проверена на следующих версиях:
Notepad++ версиях 8.4.8 (32-бит) и ранее.Notepad++ версиях 8.4.9 (32-бит) и ранее.