
Preuve de concept pour CVE-2022-31901 : déni de service dans Notepad++ (x86) <=8.4.9 via des fichiers texte spécialement conçus, avec analyse de la cause racine et débogage de dump Visual Studio.
Notepad++(x86) dans 8.4.3 et antérieur.ex. first.txt & second.txt) en entrée dans notepad++.À titre d'exemple illustratif ci-dessous, au 11/07/2022, la dernière version de Notepad++(x86) est 8.4.3 utilisée.



Ici, nous pouvons voir le problème d'analyse de ces fichiers dans ScintallComponent -> Editor.h -> Ligne numéro 690.
Lorsque notepad++ ouvre un fichier, il appelle une fonction notepad_plus::addHotSpot qui crée de la mémoire tas avec l'opérateur new et stocke l'adresse de retour dans la variable widetext
TCHAR *wideText = new TCHAR[endPos - startPos + 1];. Comme elle demande une grande allocation, new retourne bad_alloc qui n'est pas géré dans notepad++ et entraîne un DoS.
On peut donc dire que l'ouverture des deux fichiers d'exemple avec Notepad++(x86) <= 8.4.3 conduit à un déni de service.
La vulnérabilité a été testée et fonctionne sur les versions suivantes :
versions Notepad++ 8.4.8 (32-bit) et antérieures.versions Notepad++ 8.4.9 (32-bit) et antérieures.