🇰🇷 한글 설명
오픈 소스 Windows 스크린샷 유틸리티인 Greenshot의 1.3.300 및 이전 버전에서 WM_COPYDATA 메시지를 처리할 때 발생하는 취약점입니다. 공격자가 제어하는 데이터를 검증 없이 BinaryFormatter.Deserialize를 통해 역직렬화함으로써, 동일한 권한 수준의 로컬 프로세스가 Greenshot 프로세스 내에서 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
Greenshot 프로그램이 외부에서 전달된 데이터를 확인하기도 전에 먼저 실행해버리는 보안 결함이 발견되었습니다. 이를 통해 해커가 컴퓨터에 있는 다른 프로그램의 권한을 빌려 악성 코드를 몰래 실행할 수 있습니다.
🇺🇸 원문 (English)
Greenshot is an open source Windows screenshot utility. Greenshot 1.3.300 and earlier deserializes attacker-controlled data received in a WM_COPYDATA message using BinaryFormatter.Deserialize without prior validation or authentication, allowing a local process at the same integrity level to trigger arbitrary code execution inside the Greenshot process. The vulnerable logic resides in a WinForms WndProc handler for WM_COPYDATA (message 74) that copies the supplied bytes into a MemoryStream and invokes BinaryFormatter.Deserialize, and only afterward checks whether the specified channel is authorized. Because the authorization check occurs after deserialization, any gadget chain embedded in the serialized payload executes regardless of channel membership. A local attacker who can send WM_COPYDATA to the Greenshot main window can achieve in-process code execution, which may aid evasion of application control policies by running payloads within the trusted, signed Greenshot.exe process. This issue is fixed in version 1.3.301. No known workarounds exist.
📍 영향받는 시스템
Greenshot 1.3.300 및 그 이전 버전
⚔️ 공격 벡터
동일한 권한을 가진 로컬 프로세스가 WM_COPYDATA 메시지를 통해 조작된 데이터를 전송
🛡️ 대응 방법
Greenshot을 최신 버전인 1.3.301 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 1.3.301보다 낮으면 취약한 상태입니다.
powershell -Command "(Get-Item -Path 'C:\Program Files\Greenshot\Greenshot.exe').VersionInfo.FileVersion"