
Preuve de concept d'exploit pour CVE-2022-31902, une vulnérabilité de déni de service dans Notepad++ déclenchée par une recherche dans un fichier texte malveillant, avec analyse de la cause racine et versions testées.
Notepad++(x86) dans 8.4.3 et avant.first.txt) et en utilisant les options Find All in All Opened Document ou Find All in Current Opened Document sous les options de recherche.À titre d'exemple illustratif ci-dessous, au 11/07/2022, la dernière version de Notepad++(x86) utilisée est la 8.4.3.

first.txt et recherchez un caractère quelconque dans Notepad++, puis appuyez sur le bouton Find All in All Opened Document ou Find All in Current Opened Document.


Ici nous pouvons voir que le problème se trouve dans ScintallComponent -> ScintillaWin.cxx-> ligne numéro 3699.
Lorsque l'utilisateur utilise la fonctionnalité de recherche de Notepad++ dans first.txt, cela entraîne le crash de l'application.
Notepad++ appelle une fonction finder::add dans le fichier findReplaceDlg.cpp qui appelle la fonction push_back(foundinfo), qui appelle en interne une allocation mémoire de taille 4bf21 .
En raison du manque de mémoire, l'new_operator est incapable d'allouer la mémoire et renvoie bad_alloc.
Ainsi, nous pouvons dire que la recherche d'un caractère dans first.txt à l'aide du bouton Find All in All Opened Document conduit à un déni de service.
La vulnérabilité a été testée et fonctionne sur les versions suivantes :
Notepad++ versions 8.4.8 (32-bit) and before.Notepad++ versions 8.4.9 (32-bit) and before.