DEEP DIVE REPORT

Deep Dive: CVE-2020-9715 - Adobe Acrobat Use-After-Free 취약점

SecurityDesk
2026.04.16 조회 5

취약점 개요

CVE-2020-9715는 Adobe Acrobat 및 Adobe Acrobat Reader에 존재하는 use-after-free 취약점이다. 공격자가 조작된 PDF 파일을 사용자가 열게 유도할 경우, 임의 코드 실행이 가능하여 심각한 보안 위협이 된다.

  • CVE 번호: CVE-2020-9715
  • 발견일: 2020년 6월 24일
  • 공개일: 2020년 8월 12일
  • 취약점 유형: Use-After-Free (CWE-416)
  • 취약점 등급: Critical

CVSS 점수

  • CVSS v3.0 점수: 7.8 (High)
  • 공격 벡터 (AV): Local (L)
  • 공격 복잡도 (AC): Low (L)
  • 권한 요구 (PR): None (N)
  • 사용자 상호작용 (UI): Required (R)
  • 범위 (S): Unchanged (U)
  • 기밀성 영향 (C): High (H)
  • 무결성 영향 (I): High (H)
  • 가용성 영향 (A): High (H)

영향받는 시스템

영향받는 제품

  • Adobe Acrobat
  • Adobe Acrobat Reader

영향받는 버전

  • Adobe Acrobat/Reader 2020: 2020.009.20074 및 이전
  • Adobe Acrobat/Reader 2020: 2020.001.30002
  • Adobe Acrobat/Reader 2017: 2017.011.30171 및 이전
  • Adobe Acrobat/Reader 2015: 2015.006.30523 및 이전

영향받는 운영 체제

  • Windows
  • macOS

기술적 세부사항

취약점 설명

CVE-2020-9715는 Adobe Acrobat Reader DC의 EScript.api 모듈 내 데이터 ESObject 캐시에 존재하는 use-after-free 취약점이다. 이 취약점의 핵심 원인은 캐시 키 생성 및 삭제 과정에서 발생하는 문자열 인코딩 불일치에 있다.

Adobe Reader의 JavaScript 엔진은 PDF 파일에 내장된 JavaScript 코드를 처리한다. 이 엔진은 ESObjects와 JSObjects를 사용하며, 그 중 data ESObject는 내장 파일과 데이터 스트림을 나타낸다.

data ESObject는 다음 요소로 구성된 캐시 키(cache_key)로 식별된다:
- PDDoc 객체에 대한 포인터 (PDF 문서 객체)
- data ESObject의 이름 (ANSI 또는 Unicode 문자열)

취약점 원인

data ESObject가 캐시에 추가될 때는 원본 인코딩(ANSI 또는 Unicode)이 유지되지만, 삭제될 때는 항상 Unicode 인코딩이 사용된다. 이로 인해 ANSI 이름을 가진 data ESObject의 캐시 엔트리가 절대 제거되지 않고, 해제된 ESObject에 대한 포인터가 캐시에 영구적으로 남게 된다.

공격 시나리오

  1. 취약한 객체 생성: ANSI 이름을 가진 data ESObject 생성 및 캐시에 추가
  2. 객체 해제: JavaScript 코드에서 this.dataObjects[0] = null로 참조 제거
  3. 가비지 컬렉션: ESObject 메모리 해제
  4. 캐시 재사용: this.dataObjects[0]에 다시 접근
  5. use-after-free 발생: 캐시 해제 실패로 인해 해제된 메모리에 대한 포인터 반환

공격 패턴

1. Heap Spraying

  • 0xffe8 바이트 크기의 ArrayBuffer를 대량으로 할당하여 연속적인 메모리 영역 확보
  • 각 ArrayBuffer 내에 조작된 가짜 Array 객체 삽입

2. Low Fragmentation Heap (LFH) 준비

  • 0x48 바이트 크기의 객체를 반복적으로 할당하여 LFH 활성화
  • 해제된 ESObject가 LFH에 할당되도록 유도

3. 취약한 객체 생성 및 해제

  • ANSI 이름의 data ESObject 생성
  • 가비지 컬렉터를 통해 메모리 해제

4. 메모리 재할당

  • 0x48 바이트 크기의 문자열을 spraying하여 해제된 메모리 영역 재할당
  • 문자열은 가짜 Array 객체가 예상되는 주소를 포함

5. 임의 메모리 읽기/쓰기 획득

  • 가짜 Array 객체를 사용하여 인접 ArrayBuffer의 byteLength 필드 변조
  • byteLength를 0xffffffff로 설정하여 임의 주소 접근 가능

6. ROP 체인 실행

  • ASLR 우회: 모듈 주소 유출
  • DEP 우회: ROP 체인 구성
  • CFG 우회: CFG가 비활성화된 icucnv58.dll 사용
  • VirtualProtect 호출을 통해 쉘코드 메모리 권한 변경
  • 쉘코드 실행

완화 조치

즉시 조치

  1. 소프트웨어 업데이트
  2. Adobe Acrobat/Reader를 최신 버전으로 업데이트
  3. 수동: Help > Check for Updates
  4. 자동: 업데이트 자동 검색 허용
  5. 다운로드: Adobe Reader Download Center
  6. 관리자: Adobe FTP 서버에서 엔터프라이즈 설치 프로그램 다운로드

  7. 패치 버전

  8. APSB20-48 보고서에 따라 2020년 8월 11일에 패치 발표
  9. 최신 버전으로 업데이트하면 취약점 해결됨

장기 조치

  1. PDF 파일 주의
  2. 알려지지 않은 발신자의 PDF 파일 열지 않기
  3. 이메일 첨부 파일 검증
  4. 샌드박스 환경에서 의심스러운 PDF 열기

  5. 사용자 권한 제한

  6. 최소 권한 계정 사용
  7. 관리자 권한으로 로그인하지 않고 일반 사용 권한으로 PDF 열기

  8. 보안 도구

  9. 최신 악성코드 탐지 도구 사용
  10. 엔드포인트 보호 솔루션 구현

  11. CISA 가이드라인 준수

  12. BOD 22-01 (Binding Operational Directive) 가이드라인 따르기
  13. KEV (Known Exploited Vulnerabilities) 카탈로그 참조

귀속 분석

공격자 유형

  • 공격 난이도: 중간 (Medium)
  • 요구되는 기술: JavaScript 역공학, 힙 관리 이해, ROP 체인 구성 능력
  • 자원 요구사항: 연구 개발 시간, 제로데이 취약점 분석 역량

악용 가능성

CISA KEV 카탈로그 포함 여부: 예
- 추가일: 2026년 4월 13일
- 마감일: 2026년 4월 27일
- 랜섬웨어 캠페인 사용 여부: 알려지지 않음

위협 행위자

이 취약점은 다음과 같은 행위자들에게 유용할 수 있다:
- APT (Advanced Persistent Threat) 그룹
- 사이버 범죄 조직
- 랜섬웨어 운영자
- 지원국가 해커

참고문헌

  • NVD (National Vulnerability Database): https://nvd.nist.gov/vuln/detail/CVE-2020-9715
  • Adobe Security Bulletin (APSB20-48): https://helpx.adobe.com/security/products/acrobat/apsb20-48.html
  • CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-9715
  • Zero Day Initiative (ZDI): https://www.zerodayinitiative.com/advisories/ZDI-20-991/
  • Exodus Intelligence: https://blog.exodusintel.com/2021/04/20/analysis-of-a-use-after-free-vulnerability-in-adobe-acrobat-reader-dc/

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9