[하루한줄] CVE-2021-39863: Adobe Acrobat Reader DC Heap overflow

URL

Analysis of a Heap Buffer-Overflow Vulnerability in Adobe Acrobat Reader DC

Target

Acrobat Reader DC version 2021.005.20060 이전

Explain

Acrobat Reader DC의 IA32.api에서 Heap buffer-overflow 취약점이 발견되었습니다. Adobe Reader는 PDF에 embed 된 JavaScript를 처리하고 실행하기 위해 모듈을 사용합니다. 그중 인터넷 접속과 관령된 동작을 처리하는 IA32.api 모듈에서 base URL과 relative URL을 합치는 과정에서 취약점이 발생합니다.

해당 취약점은 base URL과 relative URL의 인코딩 방식이 다를 때 발생합니다. base URL과 relative URL의 길이를 계산해 destination buffer를 할당하고 인코딩 방식에 따라 데이터를 1byte 혹은 2byte씩 복사합니다. 문제는 base URL의 인코딩 방식만을 확인하고 destination buffer의 크기와 복사하는 방식을 선택한다는 것입니다.

base URL의 인코딩 방식이 Unicode고 relative URL의 인코딩 방식이 ANSI일 때 실제 relative URL의 길이의 2배가 되는 길이의 데이터가 복사되고, 이는 out-of-bound read이며 동시에 out-of-bound write입니다.