[하루한줄] Adobe Reader UAF vulnerability

URL

CVE-2020-9715: EXPLOITING A USE-AFTER-FREE IN ADOBE READER

Target

Adobe Reader

Explain

Adobe Reader에서 원격 코드 실행까지 가능한 UAF 취약점이 발견되었습니다.

ESObjects 는 Adobe Reader의 EScript 객체입니다. ESObjects를 구성할 때 해당 객체에 대한 포인터가 캐시에 저장됩니다. 동일한 PDDoc구조, 이름을 가진 ESObject를 구성할 때 새로 할당하는 대신 캐시의 ESObject 포인터가 사용되는데, 이때 UAF 취약점이 발생합니다.

ESObject가 할당되고 객체 캐시에 추가될 때 ESString type은 ANSI입니다. 객체 캐시에서 ESObject를 삭제할 때 ESString 값으로 찾아 삭제하는데, 삭제할 항목을 검색할 때 UNICODE로 입력받아 ESString 항목을 찾지 못하게 됩니다. 결과적으로 ESObject 포인터는 삭제되지 않고, 이를 재사용할 수 있습니다.

해당 취약점은 ArrayBuffer byteLength corruption과 heap spray로 트리거해 RCE가 가능합니다.