[하루한줄] 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가 가능합니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.