
CVE-2022-31902에 대한 개념 증명(PoC) 익스플로잇, 조작된 텍스트 파일 내에서 검색 시 트리거되는 Notepad++의 서비스 거부 취약점, 근본 원인 분석 및 테스트된 버전 포함.
Notepad++(x86) 8.4.3 및 이전 버전에서의 서비스 거부(DoS)예: first.txt)을 열고, 찾기 옵션에서 모든 열린 문서에서 모두 찾기 또는 현재 열린 문서에서 모두 찾기를 사용하면 취약점이 트리거됩니다.아래 예시와 같이, 2022/07/11 기준 최신 버전의 Notepad++(x86) 8.4.3이 사용되었습니다.

모든 열린 문서에서 모두 찾기 또는 현재 열린 문서에서 모두 찾기 버튼을 누릅니다.


여기서 문제가 __ScintallComponent -> ScintillaWin.cxx -> 라인 번호 3699__에 있음을 확인할 수 있습니다.
사용자가 first.txt에서 notepad++의 찾기 기능을 사용하면 애플리케이션이 충돌합니다.
Notepad++는 findReplaceDlg.cpp 파일에서 finder::add 함수를 호출하고, 이 함수는 push_back(foundinfo) 함수를 호출하며, 내부적으로 크기 __4bf21__의 메모리 할당을 요청합니다.
메모리 부족으로 인해 new_operator가 메모리를 할당하지 못하고 __bad_alloc__을 반환합니다.
따라서 first.txt에서 모든 열린 문서에서 모두 찾기 버튼을 사용하여 문자를 검색하면 서비스 거부(DoS)가 발생한다고 할 수 있습니다.
취약점은 다음 버전에서 작동하는 것으로 테스트되었습니다:
Notepad++ 버전 8.4.8(32-bit) 및 이전 버전에서 여전히 지속됩니다.Notepad++ 버전 8.4.9(32-bit) 및 이전 버전에서 여전히 지속됩니다.