
Proof-of-Concept für CVE-2022-31901: Denial-of-Service in Notepad++ (x86) <=8.4.9 durch speziell präparierte Textdateien, mit Ursachenanalyse und Visual Studio-Dump-Debugging.
Notepad++(x86) in 8.4.3 und früher.e.g. first.txt & second.txt) als Eingabe für Notepad++.Als veranschaulichendes Beispiel unten wurde zum Stand 11/07/2022 die neueste Version von Notepad++(x86) 8.4.3 verwendet.



Hier sehen wir das Problem beim Parsen dieser Dateien in ScintallComponent -> Editor.h -> Zeile 690.
Wenn notepad++ eine Datei öffnet, ruft es die Funktion notepad_plus::addHotSpot auf, die mit dem Operator new Heap-Speicher anlegt und die Rückgabeadresse in der Variable widetext speichert.
TCHAR *wideText = new TCHAR[endPos - startPos + 1];
Da es eine große Speicheranforderung stellt, gibt new bad_alloc zurück, was in notepad++ nicht behandelt wird und zu einem DoS führt.
Daher kann gesagt werden, dass das Öffnen der beiden Beispieldateien mit Notepad++(x86) <= 8.4.3 zu einem Denial-of-Service führt.
Die Schwachstelle wurde auf den folgenden Versionen getestet:
Notepad++ versions 8.4.8 (32-bit) and before.Notepad++ versions 8.4.9 (32-bit) and before.