
Prova de conceito para CVE-2022-31902, uma vulnerabilidade de negação de serviço no Notepad++ (x86) acionada pelo recurso Localizar Tudo em arquivos de texto especialmente criados, causando uma falha por falha na alocação de memória.
Notepad++(x86) nas versões 8.4.3 e anteriores.ex.: first.txt) e então usar as opções Find All in All Opened Document ou Find All in Current Opened Document nas opções de Localizar.Como exemplo ilustrativo abaixo, em 11/07/2022, a versão mais recente do Notepad++(x86) 8.4.3 é usada.

Find All in All Opened Document ou Find All in Current Opened Document.


Aqui podemos ver que o problema está em ScintallComponent -> ScintillaWin.cxx-> Linha número 3699.
Quando o usuário utiliza a funcionalidade de localizar do Notepad++ em first.txt, resulta em uma falha do aplicativo.
O Notepad++ chama a função finder::add no arquivo findReplaceDlg.cpp que chama a função push_back(foundinfo), que internamente solicita alocação de memória de tamanho 4bf21.
Devido à falta de memória, o new_operator não consegue alocar a memória e retorna bad_alloc.
Portanto, podemos dizer que, pesquisar por um caractere em first.txt usando o botão Find All in All Opened Document, leva a uma Negação de Serviço.
A vulnerabilidade foi testada e funciona nas seguintes versões:
versões do Notepad++ 8.4.8 (32-bit) e anteriores.versões do Notepad++ 8.4.9 (32-bit) e anteriores.