
CVE-2022-31901에 대한 개념 증명: 특수하게 조작된 텍스트 파일을 통한 Notepad++ (x86) <=8.4.9의 서비스 거부, 근본 원인 분석 및 Visual Studio 덤프 디버깅 포함.
Notepad++(x86) 8.4.3 및 이전 버전에서 서비스 거부(DOS) 발생.예: first.txt 및 second.txt)을 열어서 유발됩니다.아래 예시와 같이, 2022년 7월 11일 기준 최신 버전인 Notepad++(x86) 8.4.3이 사용되었습니다.



여기에서 __ScintallComponent -> Editor.h -> 줄 번호 690__에서 이 파일들을 파싱하는 문제를 확인할 수 있습니다.
노트패드++가 파일을 열 때 notepad_plus::addHotSpot 함수를 호출하여 new 연산자로 힙 메모리를 할당하고 반환 주소를 widetext 변수에 저장합니다.
TCHAR *wideText = new TCHAR[endPos - startPos + 1];. 큰 할당을 요청하기 때문에 __new__는 __bad_alloc__을 반환하며, 이는 노트패드++에서 처리되지 않아 서비스 거부(DoS)가 발생합니다.
따라서 Notepad++(x86) <= 8.4.3으로 두 개의 예제 파일을 여는 것은 서비스 거부로 이어진다고 할 수 있습니다.
이 취약점은 다음 버전에서 작동하는 것으로 테스트되었습니다:
Notepad++ 버전 8.4.8(32비트) 및 이전에서 여전히 지속됩니다.Notepad++ 버전 8.4.9(32비트) 및 이전에서 여전히 지속됩니다.