
Prueba de concepto para CVE-2022-31901: denegación de servicio en Notepad++ (x86) <=8.4.9 mediante archivos de texto especialmente manipulados, con análisis de causa raíz y depuración de volcados de Visual Studio.
Notepad++(x86) en 8.4.3 y anteriores.por ejemplo, first.txt y second.txt) como entrada a notepad++.Como ejemplo ilustrativo a continuación, a fecha de 11/07/2022, se utiliza la última versión de Notepad++(x86) que es 8.4.3.



Aquí podemos ver el problema al analizar estos archivos en ScintallComponent -> Editor.h -> Línea número 690.
Cuando Notepad++ abre cualquier archivo, llama a la función notepad_plus::addHotSpot que crea memoria dinámica con el operador new y almacena la dirección de retorno en la variable widetext
TCHAR *wideText = new TCHAR[endPos - startPos + 1];. Dado que solicita una asignación grande, new devuelve bad_alloc que no es manejado en Notepad++ y resulta en una denegación de servicio (DoS).
Por lo tanto, se puede decir que abrir los dos archivos de ejemplo con Notepad++(x86) <= 8.4.3 conduce a una Denegación de Servicio.
La vulnerabilidad ha sido probada para funcionar en las siguientes versiones:
las versiones de Notepad++ 8.4.8 (32-bit) y anteriores.las versiones de Notepad++ 8.4.9 (32-bit) y anteriores.