
Proof-of-concept per CVE-2022-31901: denial-of-service in Notepad++ (x86) <=8.4.9 tramite file di testo appositamente creati, con analisi delle cause profonde e debugging dei dump di Visual Studio.
Notepad++(x86) in 8.4.3 e precedenti.es. first.txt e second.txt) come input a notepad++.Come esempio illustrativo di seguito, al 11/07/2022, viene utilizzata l'ultima versione di Notepad++(x86) che è la 8.4.3.



Qui possiamo vedere il problema nell'analizzare questi file in ScintallComponent -> Editor.h -> Linea numero 690.
Quando notepad++ apre un file, chiama una funzione notepad_plus::addHotSpot che crea memoria heap con l'operatore new e memorizza l'indirizzo di ritorno nella variabile widetext
TCHAR *wideText = new TCHAR[endPos - startPos + 1];. Poiché richiede un'allocazione grande, new restituisce bad_alloc che non viene gestito in notepad++ e provoca un DoS.
Quindi si può dire che l'apertura dei due file di esempio con Notepad++(x86) <= 8.4.3 porta a un Denial of Service.
La vulnerabilità è stata testata per funzionare sulle seguenti versioni:
Notepad++ versions 8.4.8 (32-bit) and before.Notepad++ versions 8.4.9 (32-bit) and before.