7월에 개발사에 알렸으나 12월 말에 패치돼...사용하고 있다면 4.2.0 버전이 안전
[보안뉴스 문가용 기자] 오픈CV 라이브러리에서 두 개의 고위험군 취약점이 발견됐고 패치됐다. 둘 다 버퍼 오버플로우 계열의 취약점으로, 성공적으로 익스플로잇 됐을 경우 임의 코드 실행으로 이어질 수 있다고 한다.

[이미지 = iclickart]
오픈CV(OpenCV)는 오픈소스 라이브러리로, 2500개가 넘는 컴퓨터 비전 및 머신러닝 알고리즘을 포함하고 있다. 일반 상품에서 머신 인지 기술이 보다 널리 활용될 수 있도록 만들어진 것이다. 구글, 야후, 마이크로소프트, 인텔, IBM, 소니, 혼다, 도요타 등 유수의 기업들이 이 라이브러리를 사용하고 있으며, 얼굴 인식, 로보틱스, 움직임 추적 등의 기술 분야에서 여러 모양으로 응용되고 있다. C++, 파이선, 자바, MATLAB 인터페이스를 모두 보유하고 있으며, 윈도우, 리눅스, 안드로이드, 맥OS와 호환된다.
최신 버전은 오픈CV 4.2.0으로 2019년 12월 말에 발표됐다. 이전 버전에 비해 여러 가지가 향상되고 고쳐졌다. 이 중에는 위에서 말한 두 개의 버퍼 오버플로우 취약점도 포함되어 있다. 이는 시스코의 탈로스(Talos) 팀이 제일 먼저 발견한 것이라고 한다.
첫 번째 취약점은 CVE-2019-5063으로 CVSS 기준 8.8점을 받았다. 힙 버퍼 오버플로우 취약점으로, 오픈CV 4.1.0의 데이터 구조 관련 기능에서 나타났다. 성공적으로 익스플로잇 될 경우 개발자가 오픈CV 데이터 구조를 디스크의 파일에 복사할 수 있게 된다(그 반대로도 조작이 가능하게 된다).
탈로스에 의하면 오픈CV가 문자 객체 참조표가 포함된 XML 파일을 검사하는 과정 중 앰퍼샌드(&)가 걸리면, 다음 세미콜론(;)이 나올 때까지 알파뉴메릭 문자들을 계속해서 그냥 넘긴다고 한다. “그러다가 문자열이 스위치 명령문에 명시된 문자열과 맞지 않으면 데이터가 있는 그대로 버퍼에 복사됩니다.” 이 현상을 공격자가 이용할 경우 다량의 힙 변형을 일으킬 수 있고, 이를 통해 코드를 실행시키는 게 가능하다.
두 번째 취약점은 CVE-2019-5064로 역시 8.8점을 받았다. 위 취약점과 마찬가지로 데이터 구조와 관련된 기능에 존재하며, 특수하게 조작된 JSON 파일을 통해 공략할 수 있다. “JSON 파일을 검사하다가 널 바이트가 걸리면, 오픈CV가 그 지점까지 검사된 모든 값을 버퍼로 복사합니다. 그러면서도 JSON 값이 최종 버퍼에서 오버플로우를 일으킬 것인지가 확인되지 않습니다.”
이 두 가지 취약점 모두 4.1.0 버전에서 발견된 것이며, 2019년 7월에 개발사로 보고됐다. 근 반 년만에 패치가 이뤄진 것이라고 볼 수 있다.
3줄 요약
1. 컴퓨터 비전과 머신러닝 확산을 위해 개발된 오픈소스 라이브러리 오픈CV.
2. 지난 해 7월 두 가지 고위험군 취약점이 발견됨.
3. 임의 코드 실행을 가능케 하는 것으로 12월 말에 패치가 이루어짐.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>