🇰🇷 한글 설명
Notepad++ 8.9.8 미만 버전에서 NppParameters::writeSession 함수 내 스택 버퍼 오버플로우 취약점이 발견되었습니다. -settingsDir= 옵션으로 유도된 긴 세션 경로가 고정된 크기의 스택 버퍼를 초과하여 복사됨으로써 프로그램이 비정상 종료될 수 있습니다.
💡 쉬운 설명
메모장 프로그램의 설정 저장 과정에서 너무 긴 경로 이름을 처리하지 못해 프로그램이 갑자기 꺼지는 문제입니다. 공격자가 특수하게 조작된 경로를 사용하면 프로그램을 강제로 종료시킬 수 있습니다.
🇺🇸 원문 (English)
Notepad++ is a free and open-source source code editor. Prior to 8.9.8, Notepad++ contains a stack buffer overflow in NppParameters::writeSession in PowerEditor/src/Parameters.cpp because it copies a session path derived from -settingsDir= into backupPathName[MAX_PATH] with unbounded wcscpy and appends SESSION_BACKUP_EXT with unbounded wcscat. A sufficiently long settings directory causes the backup suffix to exceed the fixed stack buffer when Notepad++ saves the session, and the protected release build terminates through its stack canary, causing denial of service. This issue is fixed in version 8.9.8.
📍 영향받는 시스템
Notepad++ 8.9.8 미만 모든 버전
⚔️ 공격 벡터
조작된 -settingsDir= 매개변수를 포함한 세션 경로를 통한 스택 버퍼 오버플로우 유도
🛡️ 대응 방법
Notepad++를 최신 버전인 8.9.8 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 8.9.8보다 낮으면 취약한 상태입니다.
notepad++ --version 2>/dev/null || powershell "(Get-Item 'C:\Program Files\Notepad++\notepad++.exe').VersionInfo.FileVersion"