2019-11-20 17:07 (수)
곰플레이어 버퍼오버플로우 취약점 패치하세요!
상태바
곰플레이어 버퍼오버플로우 취약점 패치하세요!
  • 길민권
  • 승인 2012.03.16 16:15
이 기사를 공유합니다

곰플레이어 AVI파일포맷에 힙 버퍼오버플로우 취약점 주의
2월 15일 패치버전 공개…이용자들 최신버전으로 업그레이드 해야
유명 동영상 플레이어인 ‘곰(GOM) 플레이어’ AVI 파일포맷 handler에 힙 버퍼오버플로우(Heap buffer overflow) 취약점이 발견돼 최신 패치버전이 발표됐다. 아직 패치버전으로 업그레이드 하지 않은 이용자들이 있다면 신속한 패치가 필요한 상황이다.  
 
이 취약점을 최초 발표한 홍정우(codeache) B10S & 해커스쿨 맴버는 “곰(GOM) 플레이어에서 재생 가능한 AVI파일에 임의의 코드를 수행할 수 있는 변조된 데이터를 넣음으로써 악성코드 유포나 PC장악 등에 악용이 가능하다”고 설명했다.
 
이 공격에 취약한 버전은 Gom player 2,1,36,5083(Unicode) 이하 버전이다. 최신 버전은 해당되지 않는다.  
 
좀더 자세히 살펴보면, 곰플레이어가 AVI 포맷 스트림헤더인 strh chunk의 dwSize를 참조해 이 크기만큼 chunk 데이터를 힙에 복사하는 과정에서 힙 오버플로우(heap overflow) 취약점이 발생하는 것이다.
 
이 힙 오버플로우를 통해 곰플레이어 내의 함수포인터 혹은 힙 메타데이터를 변조함으로써 임의의 코드를 실행하는 것이 가능하게 된다.
 
공격자는 정상적인 것처럼 보이는 AVI 파일안에 취약점을 유발하는 악성코드를 은닉하여
대상 PC를 장악할 수 있다.
 
AVI 파일 포맷 내 문제가 되는 부분은 아래와 같다.

RIFF AVI
        + AVIH
        + LIST strl
                + strh
                        + dwSize       <---- 이 값이 아래 구조체의 크기보다 클 시 heap overflow 발생
                        + AVIStreamHeader 구조체  <---- overflow되는 payload의 위치가 됨
                + strf
                + strn
        + ...
홍정우 씨는 “AVI 포맷 내 strh의 dwSize 값이 할당된 heap 메모리 영역 혹은 AVIStreamHeader 구조체의 크기보다 큰지에 대한 바운더리 체킹(boundary checking)을 수행해야 한다”고 밝혔다.
 
이 취약점을 유발시켜 곰플레이어가 강제 종료되는 파일은 아래와 같다.
-research.hackerschool.org/bbs/data/0day/crash.avi
 
해당 취약점은 지난 1월 9일 최초 홍정우 연구원에 의해 발견됐으며 2월 8일 개발사(Gretech)에 취약권고문 제보한 바 있다. 또 2월 15일 곰플레이어 한글버전 패치가 완료됐다.
 
곰플레이어는 AVI 파일 실행 관련 취약점을 개선했고 Gretech MP4 Source Filter에서 일부 오디오 코덱 연결이 안되는 오류를 수정해 배포했다. 또 지난 3월 6일 곰플레이어 해외버전도 패치를 완료한 상태다.
 
하지만 아직 패치를 하지 않은 사무실 내 이용자나 일반 PC 이용자들도 많기 때문에 곰플레이어 최선버전으로 신속한 업데이트를 실시한 후 사용해야 피해를 예방할 수 있다.
[데일리시큐=길민권 기자]