
Эксплойт для проверки концепции уязвимости CVE-2022-31902, представляющей собой уязвимость типа «отказ в обслуживании» в Notepad++, вызываемую поиском внутри специально созданного текстового файла, с анализом первопричины и проверенными версиями.
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-бит) и ранее.